YES 8.957 H-Termination proof of /home/matraf/haskell/eval_FullyBlown_Fast/FiniteMap.hs
H-Termination of the given Haskell-Program with start terms could successfully be proven:



HASKELL
  ↳ LR

mainModule FiniteMap
  ((keysFM_GE :: Ord a => FiniteMap (Maybe a) b  ->  Maybe a  ->  [Maybe a]) :: Ord a => FiniteMap (Maybe a) b  ->  Maybe a  ->  [Maybe a])

module FiniteMap where
  import qualified Maybe
import qualified Prelude

  data FiniteMap b a = EmptyFM  | Branch b a Int (FiniteMap b a) (FiniteMap b a


  instance (Eq a, Eq b) => Eq (FiniteMap b a) where 
   
(==) fm_1 fm_2 sizeFM fm_1 == sizeFM fm_2 && fmToList fm_1 == fmToList fm_2

  fmToList :: FiniteMap a b  ->  [(a,b)]
fmToList fm foldFM (\key elt rest ->(key,elt: rest) [] fm

  foldFM :: (a  ->  c  ->  b  ->  b ->  b  ->  FiniteMap a c  ->  b
foldFM k z EmptyFM z
foldFM k z (Branch key elt _ fm_l fm_rfoldFM k (k key elt (foldFM k z fm_r)) fm_l

  foldFM_GE :: Ord b => (b  ->  a  ->  c  ->  c ->  c  ->  b  ->  FiniteMap b a  ->  c
foldFM_GE k z fr EmptyFM z
foldFM_GE k z fr (Branch key elt _ fm_l fm_r
 | key >= fr = 
foldFM_GE k (k key elt (foldFM_GE k z fr fm_r)) fr fm_l
 | otherwise = 
foldFM_GE k z fr fm_r

  keysFM_GE :: Ord a => FiniteMap a b  ->  a  ->  [a]
keysFM_GE fm fr foldFM_GE (\key elt rest ->key : rest) [] fr fm

  sizeFM :: FiniteMap a b  ->  Int
sizeFM EmptyFM 0
sizeFM (Branch _ _ size _ _) size


module Maybe where
  import qualified FiniteMap
import qualified Prelude



Lambda Reductions:
The following Lambda expression
\keyeltrestkey : rest

is transformed to
keysFM_GE0 key elt rest = key : rest

The following Lambda expression
\keyeltrest→(key,elt: rest

is transformed to
fmToList0 key elt rest = (key,elt: rest



↳ HASKELL
  ↳ LR
HASKELL
      ↳ CR

mainModule FiniteMap
  ((keysFM_GE :: Ord b => FiniteMap (Maybe b) a  ->  Maybe b  ->  [Maybe b]) :: Ord b => FiniteMap (Maybe b) a  ->  Maybe b  ->  [Maybe b])

module FiniteMap where
  import qualified Maybe
import qualified Prelude

  data FiniteMap b a = EmptyFM  | Branch b a Int (FiniteMap b a) (FiniteMap b a


  instance (Eq a, Eq b) => Eq (FiniteMap b a) where 
   
(==) fm_1 fm_2 sizeFM fm_1 == sizeFM fm_2 && fmToList fm_1 == fmToList fm_2

  fmToList :: FiniteMap b a  ->  [(b,a)]
fmToList fm foldFM fmToList0 [] fm

  
fmToList0 key elt rest (key,elt: rest

  foldFM :: (a  ->  c  ->  b  ->  b ->  b  ->  FiniteMap a c  ->  b
foldFM k z EmptyFM z
foldFM k z (Branch key elt _ fm_l fm_rfoldFM k (k key elt (foldFM k z fm_r)) fm_l

  foldFM_GE :: Ord a => (a  ->  b  ->  c  ->  c ->  c  ->  a  ->  FiniteMap a b  ->  c
foldFM_GE k z fr EmptyFM z
foldFM_GE k z fr (Branch key elt _ fm_l fm_r
 | key >= fr = 
foldFM_GE k (k key elt (foldFM_GE k z fr fm_r)) fr fm_l
 | otherwise = 
foldFM_GE k z fr fm_r

  keysFM_GE :: Ord b => FiniteMap b a  ->  b  ->  [b]
keysFM_GE fm fr foldFM_GE keysFM_GE0 [] fr fm

  
keysFM_GE0 key elt rest key : rest

  sizeFM :: FiniteMap a b  ->  Int
sizeFM EmptyFM 0
sizeFM (Branch _ _ size _ _) size


module Maybe where
  import qualified FiniteMap
import qualified Prelude



Case Reductions:
The following Case expression
case compare x y of
 EQ → o
 LT → LT
 GT → GT

is transformed to
primCompAux0 o EQ = o
primCompAux0 o LT = LT
primCompAux0 o GT = GT



↳ HASKELL
  ↳ LR
    ↳ HASKELL
      ↳ CR
HASKELL
          ↳ IFR

mainModule FiniteMap
  ((keysFM_GE :: Ord a => FiniteMap (Maybe a) b  ->  Maybe a  ->  [Maybe a]) :: Ord a => FiniteMap (Maybe a) b  ->  Maybe a  ->  [Maybe a])

module FiniteMap where
  import qualified Maybe
import qualified Prelude

  data FiniteMap a b = EmptyFM  | Branch a b Int (FiniteMap a b) (FiniteMap a b


  instance (Eq a, Eq b) => Eq (FiniteMap b a) where 
   
(==) fm_1 fm_2 sizeFM fm_1 == sizeFM fm_2 && fmToList fm_1 == fmToList fm_2

  fmToList :: FiniteMap b a  ->  [(b,a)]
fmToList fm foldFM fmToList0 [] fm

  
fmToList0 key elt rest (key,elt: rest

  foldFM :: (c  ->  b  ->  a  ->  a ->  a  ->  FiniteMap c b  ->  a
foldFM k z EmptyFM z
foldFM k z (Branch key elt _ fm_l fm_rfoldFM k (k key elt (foldFM k z fm_r)) fm_l

  foldFM_GE :: Ord a => (a  ->  c  ->  b  ->  b ->  b  ->  a  ->  FiniteMap a c  ->  b
foldFM_GE k z fr EmptyFM z
foldFM_GE k z fr (Branch key elt _ fm_l fm_r
 | key >= fr = 
foldFM_GE k (k key elt (foldFM_GE k z fr fm_r)) fr fm_l
 | otherwise = 
foldFM_GE k z fr fm_r

  keysFM_GE :: Ord b => FiniteMap b a  ->  b  ->  [b]
keysFM_GE fm fr foldFM_GE keysFM_GE0 [] fr fm

  
keysFM_GE0 key elt rest key : rest

  sizeFM :: FiniteMap b a  ->  Int
sizeFM EmptyFM 0
sizeFM (Branch _ _ size _ _) size


module Maybe where
  import qualified FiniteMap
import qualified Prelude



If Reductions:
The following If expression
if primGEqNatS x y then Succ (primDivNatS (primMinusNatS x y) (Succ y)) else Zero

is transformed to
primDivNatS0 x y True = Succ (primDivNatS (primMinusNatS x y) (Succ y))
primDivNatS0 x y False = Zero

The following If expression
if primGEqNatS x y then primModNatS (primMinusNatS x y) (Succ y) else Succ x

is transformed to
primModNatS0 x y True = primModNatS (primMinusNatS x y) (Succ y)
primModNatS0 x y False = Succ x



↳ HASKELL
  ↳ LR
    ↳ HASKELL
      ↳ CR
        ↳ HASKELL
          ↳ IFR
HASKELL
              ↳ BR

mainModule FiniteMap
  ((keysFM_GE :: Ord a => FiniteMap (Maybe a) b  ->  Maybe a  ->  [Maybe a]) :: Ord a => FiniteMap (Maybe a) b  ->  Maybe a  ->  [Maybe a])

module FiniteMap where
  import qualified Maybe
import qualified Prelude

  data FiniteMap b a = EmptyFM  | Branch b a Int (FiniteMap b a) (FiniteMap b a


  instance (Eq a, Eq b) => Eq (FiniteMap b a) where 
   
(==) fm_1 fm_2 sizeFM fm_1 == sizeFM fm_2 && fmToList fm_1 == fmToList fm_2

  fmToList :: FiniteMap b a  ->  [(b,a)]
fmToList fm foldFM fmToList0 [] fm

  
fmToList0 key elt rest (key,elt: rest

  foldFM :: (b  ->  a  ->  c  ->  c ->  c  ->  FiniteMap b a  ->  c
foldFM k z EmptyFM z
foldFM k z (Branch key elt _ fm_l fm_rfoldFM k (k key elt (foldFM k z fm_r)) fm_l

  foldFM_GE :: Ord b => (b  ->  c  ->  a  ->  a ->  a  ->  b  ->  FiniteMap b c  ->  a
foldFM_GE k z fr EmptyFM z
foldFM_GE k z fr (Branch key elt _ fm_l fm_r
 | key >= fr = 
foldFM_GE k (k key elt (foldFM_GE k z fr fm_r)) fr fm_l
 | otherwise = 
foldFM_GE k z fr fm_r

  keysFM_GE :: Ord a => FiniteMap a b  ->  a  ->  [a]
keysFM_GE fm fr foldFM_GE keysFM_GE0 [] fr fm

  
keysFM_GE0 key elt rest key : rest

  sizeFM :: FiniteMap a b  ->  Int
sizeFM EmptyFM 0
sizeFM (Branch _ _ size _ _) size


module Maybe where
  import qualified FiniteMap
import qualified Prelude



Replaced joker patterns by fresh variables and removed binding patterns.

↳ HASKELL
  ↳ LR
    ↳ HASKELL
      ↳ CR
        ↳ HASKELL
          ↳ IFR
            ↳ HASKELL
              ↳ BR
HASKELL
                  ↳ COR

mainModule FiniteMap
  ((keysFM_GE :: Ord a => FiniteMap (Maybe a) b  ->  Maybe a  ->  [Maybe a]) :: Ord a => FiniteMap (Maybe a) b  ->  Maybe a  ->  [Maybe a])

module FiniteMap where
  import qualified Maybe
import qualified Prelude

  data FiniteMap a b = EmptyFM  | Branch a b Int (FiniteMap a b) (FiniteMap a b


  instance (Eq a, Eq b) => Eq (FiniteMap b a) where 
   
(==) fm_1 fm_2 sizeFM fm_1 == sizeFM fm_2 && fmToList fm_1 == fmToList fm_2

  fmToList :: FiniteMap a b  ->  [(a,b)]
fmToList fm foldFM fmToList0 [] fm

  
fmToList0 key elt rest (key,elt: rest

  foldFM :: (c  ->  b  ->  a  ->  a ->  a  ->  FiniteMap c b  ->  a
foldFM k z EmptyFM z
foldFM k z (Branch key elt vw fm_l fm_rfoldFM k (k key elt (foldFM k z fm_r)) fm_l

  foldFM_GE :: Ord b => (b  ->  a  ->  c  ->  c ->  c  ->  b  ->  FiniteMap b a  ->  c
foldFM_GE k z fr EmptyFM z
foldFM_GE k z fr (Branch key elt wv fm_l fm_r
 | key >= fr = 
foldFM_GE k (k key elt (foldFM_GE k z fr fm_r)) fr fm_l
 | otherwise = 
foldFM_GE k z fr fm_r

  keysFM_GE :: Ord a => FiniteMap a b  ->  a  ->  [a]
keysFM_GE fm fr foldFM_GE keysFM_GE0 [] fr fm

  
keysFM_GE0 key elt rest key : rest

  sizeFM :: FiniteMap b a  ->  Int
sizeFM EmptyFM 0
sizeFM (Branch vx vy size vz wusize


module Maybe where
  import qualified FiniteMap
import qualified Prelude



Cond Reductions:
The following Function with conditions
foldFM_GE k z fr EmptyFM = z
foldFM_GE k z fr (Branch key elt wv fm_l fm_r)
 | key >= fr
 = foldFM_GE k (k key elt (foldFM_GE k z fr fm_r)) fr fm_l
 | otherwise
 = foldFM_GE k z fr fm_r

is transformed to
foldFM_GE k z fr EmptyFM = foldFM_GE3 k z fr EmptyFM
foldFM_GE k z fr (Branch key elt wv fm_l fm_r) = foldFM_GE2 k z fr (Branch key elt wv fm_l fm_r)

foldFM_GE0 k z fr key elt wv fm_l fm_r True = foldFM_GE k z fr fm_r

foldFM_GE1 k z fr key elt wv fm_l fm_r True = foldFM_GE k (k key elt (foldFM_GE k z fr fm_r)) fr fm_l
foldFM_GE1 k z fr key elt wv fm_l fm_r False = foldFM_GE0 k z fr key elt wv fm_l fm_r otherwise

foldFM_GE2 k z fr (Branch key elt wv fm_l fm_r) = foldFM_GE1 k z fr key elt wv fm_l fm_r (key >= fr)

foldFM_GE3 k z fr EmptyFM = z
foldFM_GE3 vvu vvv vvw vvx = foldFM_GE2 vvu vvv vvw vvx

The following Function with conditions
compare x y
 | x == y
 = EQ
 | x <= y
 = LT
 | otherwise
 = GT

is transformed to
compare x y = compare3 x y

compare1 x y True = LT
compare1 x y False = compare0 x y otherwise

compare2 x y True = EQ
compare2 x y False = compare1 x y (x <= y)

compare0 x y True = GT

compare3 x y = compare2 x y (x == y)

The following Function with conditions
gcd' x 0 = x
gcd' x y = gcd' y (x `rem` y)

is transformed to
gcd' x vvy = gcd'2 x vvy
gcd' x y = gcd'0 x y

gcd'0 x y = gcd' y (x `rem` y)

gcd'1 True x vvy = x
gcd'1 vvz vwu vwv = gcd'0 vwu vwv

gcd'2 x vvy = gcd'1 (vvy == 0) x vvy
gcd'2 vww vwx = gcd'0 vww vwx

The following Function with conditions
gcd 0 0 = error []
gcd x y = 
gcd' (abs x) (abs y)
where 
gcd' x 0 = x
gcd' x y = gcd' y (x `rem` y)

is transformed to
gcd vwy vwz = gcd3 vwy vwz
gcd x y = gcd0 x y

gcd0 x y = 
gcd' (abs x) (abs y)
where 
gcd' x vvy = gcd'2 x vvy
gcd' x y = gcd'0 x y
gcd'0 x y = gcd' y (x `rem` y)
gcd'1 True x vvy = x
gcd'1 vvz vwu vwv = gcd'0 vwu vwv
gcd'2 x vvy = gcd'1 (vvy == 0) x vvy
gcd'2 vww vwx = gcd'0 vww vwx

gcd1 True vwy vwz = error []
gcd1 vxu vxv vxw = gcd0 vxv vxw

gcd2 True vwy vwz = gcd1 (vwz == 0) vwy vwz
gcd2 vxx vxy vxz = gcd0 vxy vxz

gcd3 vwy vwz = gcd2 (vwy == 0) vwy vwz
gcd3 vyu vyv = gcd0 vyu vyv

The following Function with conditions
absReal x
 | x >= 0
 = x
 | otherwise
 = `negate` x

is transformed to
absReal x = absReal2 x

absReal0 x True = `negate` x

absReal1 x True = x
absReal1 x False = absReal0 x otherwise

absReal2 x = absReal1 x (x >= 0)

The following Function with conditions
undefined 
 | False
 = undefined

is transformed to
undefined  = undefined1

undefined0 True = undefined

undefined1  = undefined0 False

The following Function with conditions
reduce x y
 | y == 0
 = error []
 | otherwise
 = x `quot` d :% (y `quot` d)
where 
d  = gcd x y

is transformed to
reduce x y = reduce2 x y

reduce2 x y = 
reduce1 x y (y == 0)
where 
d  = gcd x y
reduce0 x y True = x `quot` d :% (y `quot` d)
reduce1 x y True = error []
reduce1 x y False = reduce0 x y otherwise



↳ HASKELL
  ↳ LR
    ↳ HASKELL
      ↳ CR
        ↳ HASKELL
          ↳ IFR
            ↳ HASKELL
              ↳ BR
                ↳ HASKELL
                  ↳ COR
HASKELL
                      ↳ LetRed

mainModule FiniteMap
  ((keysFM_GE :: Ord b => FiniteMap (Maybe b) a  ->  Maybe b  ->  [Maybe b]) :: Ord b => FiniteMap (Maybe b) a  ->  Maybe b  ->  [Maybe b])

module FiniteMap where
  import qualified Maybe
import qualified Prelude

  data FiniteMap a b = EmptyFM  | Branch a b Int (FiniteMap a b) (FiniteMap a b


  instance (Eq a, Eq b) => Eq (FiniteMap a b) where 
   
(==) fm_1 fm_2 sizeFM fm_1 == sizeFM fm_2 && fmToList fm_1 == fmToList fm_2

  fmToList :: FiniteMap a b  ->  [(a,b)]
fmToList fm foldFM fmToList0 [] fm

  
fmToList0 key elt rest (key,elt: rest

  foldFM :: (b  ->  c  ->  a  ->  a ->  a  ->  FiniteMap b c  ->  a
foldFM k z EmptyFM z
foldFM k z (Branch key elt vw fm_l fm_rfoldFM k (k key elt (foldFM k z fm_r)) fm_l

  foldFM_GE :: Ord c => (c  ->  a  ->  b  ->  b ->  b  ->  c  ->  FiniteMap c a  ->  b
foldFM_GE k z fr EmptyFM foldFM_GE3 k z fr EmptyFM
foldFM_GE k z fr (Branch key elt wv fm_l fm_rfoldFM_GE2 k z fr (Branch key elt wv fm_l fm_r)

  
foldFM_GE0 k z fr key elt wv fm_l fm_r True foldFM_GE k z fr fm_r

  
foldFM_GE1 k z fr key elt wv fm_l fm_r True foldFM_GE k (k key elt (foldFM_GE k z fr fm_r)) fr fm_l
foldFM_GE1 k z fr key elt wv fm_l fm_r False foldFM_GE0 k z fr key elt wv fm_l fm_r otherwise

  
foldFM_GE2 k z fr (Branch key elt wv fm_l fm_rfoldFM_GE1 k z fr key elt wv fm_l fm_r (key >= fr)

  
foldFM_GE3 k z fr EmptyFM z
foldFM_GE3 vvu vvv vvw vvx foldFM_GE2 vvu vvv vvw vvx

  keysFM_GE :: Ord a => FiniteMap a b  ->  a  ->  [a]
keysFM_GE fm fr foldFM_GE keysFM_GE0 [] fr fm

  
keysFM_GE0 key elt rest key : rest

  sizeFM :: FiniteMap a b  ->  Int
sizeFM EmptyFM 0
sizeFM (Branch vx vy size vz wusize


module Maybe where
  import qualified FiniteMap
import qualified Prelude



Let/Where Reductions:
The bindings of the following Let/Where expression
reduce1 x y (y == 0)
where 
d  = gcd x y
reduce0 x y True = x `quot` d :% (y `quot` d)
reduce1 x y True = error []
reduce1 x y False = reduce0 x y otherwise

are unpacked to the following functions on top level
reduce2Reduce0 vyw vyx x y True = x `quot` reduce2D vyw vyx :% (y `quot` reduce2D vyw vyx)

reduce2Reduce1 vyw vyx x y True = error []
reduce2Reduce1 vyw vyx x y False = reduce2Reduce0 vyw vyx x y otherwise

reduce2D vyw vyx = gcd vyw vyx

The bindings of the following Let/Where expression
gcd' (abs x) (abs y)
where 
gcd' x vvy = gcd'2 x vvy
gcd' x y = gcd'0 x y
gcd'0 x y = gcd' y (x `rem` y)
gcd'1 True x vvy = x
gcd'1 vvz vwu vwv = gcd'0 vwu vwv
gcd'2 x vvy = gcd'1 (vvy == 0) x vvy
gcd'2 vww vwx = gcd'0 vww vwx

are unpacked to the following functions on top level
gcd0Gcd'0 x y = gcd0Gcd' y (x `rem` y)

gcd0Gcd'2 x vvy = gcd0Gcd'1 (vvy == 0) x vvy
gcd0Gcd'2 vww vwx = gcd0Gcd'0 vww vwx

gcd0Gcd'1 True x vvy = x
gcd0Gcd'1 vvz vwu vwv = gcd0Gcd'0 vwu vwv

gcd0Gcd' x vvy = gcd0Gcd'2 x vvy
gcd0Gcd' x y = gcd0Gcd'0 x y



↳ HASKELL
  ↳ LR
    ↳ HASKELL
      ↳ CR
        ↳ HASKELL
          ↳ IFR
            ↳ HASKELL
              ↳ BR
                ↳ HASKELL
                  ↳ COR
                    ↳ HASKELL
                      ↳ LetRed
HASKELL
                          ↳ NumRed

mainModule FiniteMap
  ((keysFM_GE :: Ord b => FiniteMap (Maybe b) a  ->  Maybe b  ->  [Maybe b]) :: Ord b => FiniteMap (Maybe b) a  ->  Maybe b  ->  [Maybe b])

module FiniteMap where
  import qualified Maybe
import qualified Prelude

  data FiniteMap a b = EmptyFM  | Branch a b Int (FiniteMap a b) (FiniteMap a b


  instance (Eq a, Eq b) => Eq (FiniteMap b a) where 
   
(==) fm_1 fm_2 sizeFM fm_1 == sizeFM fm_2 && fmToList fm_1 == fmToList fm_2

  fmToList :: FiniteMap a b  ->  [(a,b)]
fmToList fm foldFM fmToList0 [] fm

  
fmToList0 key elt rest (key,elt: rest

  foldFM :: (b  ->  c  ->  a  ->  a ->  a  ->  FiniteMap b c  ->  a
foldFM k z EmptyFM z
foldFM k z (Branch key elt vw fm_l fm_rfoldFM k (k key elt (foldFM k z fm_r)) fm_l

  foldFM_GE :: Ord c => (c  ->  b  ->  a  ->  a ->  a  ->  c  ->  FiniteMap c b  ->  a
foldFM_GE k z fr EmptyFM foldFM_GE3 k z fr EmptyFM
foldFM_GE k z fr (Branch key elt wv fm_l fm_rfoldFM_GE2 k z fr (Branch key elt wv fm_l fm_r)

  
foldFM_GE0 k z fr key elt wv fm_l fm_r True foldFM_GE k z fr fm_r

  
foldFM_GE1 k z fr key elt wv fm_l fm_r True foldFM_GE k (k key elt (foldFM_GE k z fr fm_r)) fr fm_l
foldFM_GE1 k z fr key elt wv fm_l fm_r False foldFM_GE0 k z fr key elt wv fm_l fm_r otherwise

  
foldFM_GE2 k z fr (Branch key elt wv fm_l fm_rfoldFM_GE1 k z fr key elt wv fm_l fm_r (key >= fr)

  
foldFM_GE3 k z fr EmptyFM z
foldFM_GE3 vvu vvv vvw vvx foldFM_GE2 vvu vvv vvw vvx

  keysFM_GE :: Ord a => FiniteMap a b  ->  a  ->  [a]
keysFM_GE fm fr foldFM_GE keysFM_GE0 [] fr fm

  
keysFM_GE0 key elt rest key : rest

  sizeFM :: FiniteMap b a  ->  Int
sizeFM EmptyFM 0
sizeFM (Branch vx vy size vz wusize


module Maybe where
  import qualified FiniteMap
import qualified Prelude



Num Reduction: All numbers are transformed to thier corresponding representation with Pos, Neg, Succ and Zero.

↳ HASKELL
  ↳ LR
    ↳ HASKELL
      ↳ CR
        ↳ HASKELL
          ↳ IFR
            ↳ HASKELL
              ↳ BR
                ↳ HASKELL
                  ↳ COR
                    ↳ HASKELL
                      ↳ LetRed
                        ↳ HASKELL
                          ↳ NumRed
HASKELL
                              ↳ Narrow

mainModule FiniteMap
  (keysFM_GE :: Ord a => FiniteMap (Maybe a) b  ->  Maybe a  ->  [Maybe a])

module FiniteMap where
  import qualified Maybe
import qualified Prelude

  data FiniteMap a b = EmptyFM  | Branch a b Int (FiniteMap a b) (FiniteMap a b


  instance (Eq a, Eq b) => Eq (FiniteMap b a) where 
   
(==) fm_1 fm_2 sizeFM fm_1 == sizeFM fm_2 && fmToList fm_1 == fmToList fm_2

  fmToList :: FiniteMap b a  ->  [(b,a)]
fmToList fm foldFM fmToList0 [] fm

  
fmToList0 key elt rest (key,elt: rest

  foldFM :: (c  ->  b  ->  a  ->  a ->  a  ->  FiniteMap c b  ->  a
foldFM k z EmptyFM z
foldFM k z (Branch key elt vw fm_l fm_rfoldFM k (k key elt (foldFM k z fm_r)) fm_l

  foldFM_GE :: Ord a => (a  ->  b  ->  c  ->  c ->  c  ->  a  ->  FiniteMap a b  ->  c
foldFM_GE k z fr EmptyFM foldFM_GE3 k z fr EmptyFM
foldFM_GE k z fr (Branch key elt wv fm_l fm_rfoldFM_GE2 k z fr (Branch key elt wv fm_l fm_r)

  
foldFM_GE0 k z fr key elt wv fm_l fm_r True foldFM_GE k z fr fm_r

  
foldFM_GE1 k z fr key elt wv fm_l fm_r True foldFM_GE k (k key elt (foldFM_GE k z fr fm_r)) fr fm_l
foldFM_GE1 k z fr key elt wv fm_l fm_r False foldFM_GE0 k z fr key elt wv fm_l fm_r otherwise

  
foldFM_GE2 k z fr (Branch key elt wv fm_l fm_rfoldFM_GE1 k z fr key elt wv fm_l fm_r (key >= fr)

  
foldFM_GE3 k z fr EmptyFM z
foldFM_GE3 vvu vvv vvw vvx foldFM_GE2 vvu vvv vvw vvx

  keysFM_GE :: Ord a => FiniteMap a b  ->  a  ->  [a]
keysFM_GE fm fr foldFM_GE keysFM_GE0 [] fr fm

  
keysFM_GE0 key elt rest key : rest

  sizeFM :: FiniteMap b a  ->  Int
sizeFM EmptyFM Pos Zero
sizeFM (Branch vx vy size vz wusize


module Maybe where
  import qualified FiniteMap
import qualified Prelude



Haskell To QDPs


↳ HASKELL
  ↳ LR
    ↳ HASKELL
      ↳ CR
        ↳ HASKELL
          ↳ IFR
            ↳ HASKELL
              ↳ BR
                ↳ HASKELL
                  ↳ COR
                    ↳ HASKELL
                      ↳ LetRed
                        ↳ HASKELL
                          ↳ NumRed
                            ↳ HASKELL
                              ↳ Narrow
                                ↳ AND
QDP
                                    ↳ QDPSizeChangeProof
                                  ↳ QDP
                                  ↳ QDP
                                  ↳ QDP
                                  ↳ QDP
                                  ↳ QDP
                                  ↳ QDP
                                  ↳ QDP

Q DP problem:
The TRS P consists of the following rules:

new_primEqNat(Succ(vyy30000), Succ(vyy4000)) → new_primEqNat(vyy30000, vyy4000)

R is empty.
Q is empty.
We have to consider all minimal (P,Q,R)-chains.
By using the subterm criterion [20] together with the size-change analysis [32] we have proven that there are no infinite chains for this DP problem.

From the DPs we obtained the following set of size-change graphs:



↳ HASKELL
  ↳ LR
    ↳ HASKELL
      ↳ CR
        ↳ HASKELL
          ↳ IFR
            ↳ HASKELL
              ↳ BR
                ↳ HASKELL
                  ↳ COR
                    ↳ HASKELL
                      ↳ LetRed
                        ↳ HASKELL
                          ↳ NumRed
                            ↳ HASKELL
                              ↳ Narrow
                                ↳ AND
                                  ↳ QDP
QDP
                                    ↳ QDPSizeChangeProof
                                  ↳ QDP
                                  ↳ QDP
                                  ↳ QDP
                                  ↳ QDP
                                  ↳ QDP
                                  ↳ QDP

Q DP problem:
The TRS P consists of the following rules:

new_primPlusNat(Succ(vyy10400), Succ(vyy401000)) → new_primPlusNat(vyy10400, vyy401000)

R is empty.
Q is empty.
We have to consider all minimal (P,Q,R)-chains.
By using the subterm criterion [20] together with the size-change analysis [32] we have proven that there are no infinite chains for this DP problem.

From the DPs we obtained the following set of size-change graphs:



↳ HASKELL
  ↳ LR
    ↳ HASKELL
      ↳ CR
        ↳ HASKELL
          ↳ IFR
            ↳ HASKELL
              ↳ BR
                ↳ HASKELL
                  ↳ COR
                    ↳ HASKELL
                      ↳ LetRed
                        ↳ HASKELL
                          ↳ NumRed
                            ↳ HASKELL
                              ↳ Narrow
                                ↳ AND
                                  ↳ QDP
                                  ↳ QDP
QDP
                                    ↳ QDPSizeChangeProof
                                  ↳ QDP
                                  ↳ QDP
                                  ↳ QDP
                                  ↳ QDP
                                  ↳ QDP

Q DP problem:
The TRS P consists of the following rules:

new_primMulNat(Succ(vyy300100), Succ(vyy40100)) → new_primMulNat(vyy300100, Succ(vyy40100))

R is empty.
Q is empty.
We have to consider all minimal (P,Q,R)-chains.
By using the subterm criterion [20] together with the size-change analysis [32] we have proven that there are no infinite chains for this DP problem.

From the DPs we obtained the following set of size-change graphs:



↳ HASKELL
  ↳ LR
    ↳ HASKELL
      ↳ CR
        ↳ HASKELL
          ↳ IFR
            ↳ HASKELL
              ↳ BR
                ↳ HASKELL
                  ↳ COR
                    ↳ HASKELL
                      ↳ LetRed
                        ↳ HASKELL
                          ↳ NumRed
                            ↳ HASKELL
                              ↳ Narrow
                                ↳ AND
                                  ↳ QDP
                                  ↳ QDP
                                  ↳ QDP
QDP
                                    ↳ QDPSizeChangeProof
                                  ↳ QDP
                                  ↳ QDP
                                  ↳ QDP
                                  ↳ QDP

Q DP problem:
The TRS P consists of the following rules:

new_primCmpNat(Succ(vyy6500), Succ(vyy6600)) → new_primCmpNat(vyy6500, vyy6600)

R is empty.
Q is empty.
We have to consider all minimal (P,Q,R)-chains.
By using the subterm criterion [20] together with the size-change analysis [32] we have proven that there are no infinite chains for this DP problem.

From the DPs we obtained the following set of size-change graphs:



↳ HASKELL
  ↳ LR
    ↳ HASKELL
      ↳ CR
        ↳ HASKELL
          ↳ IFR
            ↳ HASKELL
              ↳ BR
                ↳ HASKELL
                  ↳ COR
                    ↳ HASKELL
                      ↳ LetRed
                        ↳ HASKELL
                          ↳ NumRed
                            ↳ HASKELL
                              ↳ Narrow
                                ↳ AND
                                  ↳ QDP
                                  ↳ QDP
                                  ↳ QDP
                                  ↳ QDP
QDP
                                    ↳ QDPSizeChangeProof
                                  ↳ QDP
                                  ↳ QDP
                                  ↳ QDP

Q DP problem:
The TRS P consists of the following rules:

new_esEs2(@2(vyy3000, vyy3001), @2(vyy400, vyy401), bae, app(app(app(ty_@3, bba), bbb), bbc)) → new_esEs1(vyy3001, vyy401, bba, bbb, bbc)
new_esEs2(@2(vyy3000, vyy3001), @2(vyy400, vyy401), app(app(ty_Either, bbg), bbh), bca) → new_esEs(vyy3000, vyy400, bbg, bbh)
new_esEs3(:(vyy3000, vyy3001), :(vyy400, vyy401), app(app(ty_Either, bdb), bdc)) → new_esEs(vyy3000, vyy400, bdb, bdc)
new_esEs1(@3(vyy3000, vyy3001, vyy3002), @3(vyy400, vyy401, vyy402), ef, app(app(ty_@2, ha), hb), gd) → new_esEs2(vyy3001, vyy401, ha, hb)
new_esEs1(@3(vyy3000, vyy3001, vyy3002), @3(vyy400, vyy401, vyy402), ef, app(app(app(ty_@3, gf), gg), gh), gd) → new_esEs1(vyy3001, vyy401, gf, gg, gh)
new_esEs3(:(vyy3000, vyy3001), :(vyy400, vyy401), app(ty_Maybe, bdd)) → new_esEs0(vyy3000, vyy400, bdd)
new_esEs3(:(vyy3000, vyy3001), :(vyy400, vyy401), app(ty_[], beb)) → new_esEs3(vyy3000, vyy400, beb)
new_esEs2(@2(vyy3000, vyy3001), @2(vyy400, vyy401), bae, app(app(ty_@2, bbd), bbe)) → new_esEs2(vyy3001, vyy401, bbd, bbe)
new_esEs1(@3(vyy3000, vyy3001, vyy3002), @3(vyy400, vyy401, vyy402), ef, eg, app(ty_[], ga)) → new_esEs3(vyy3002, vyy402, ga)
new_esEs1(@3(vyy3000, vyy3001, vyy3002), @3(vyy400, vyy401, vyy402), ef, eg, app(app(app(ty_@3, fc), fd), ff)) → new_esEs1(vyy3002, vyy402, fc, fd, ff)
new_esEs0(Just(vyy3000), Just(vyy400), app(ty_Maybe, dg)) → new_esEs0(vyy3000, vyy400, dg)
new_esEs2(@2(vyy3000, vyy3001), @2(vyy400, vyy401), bae, app(ty_Maybe, bah)) → new_esEs0(vyy3001, vyy401, bah)
new_esEs2(@2(vyy3000, vyy3001), @2(vyy400, vyy401), app(app(ty_@2, bcf), bcg), bca) → new_esEs2(vyy3000, vyy400, bcf, bcg)
new_esEs1(@3(vyy3000, vyy3001, vyy3002), @3(vyy400, vyy401, vyy402), ef, app(ty_Maybe, ge), gd) → new_esEs0(vyy3001, vyy401, ge)
new_esEs2(@2(vyy3000, vyy3001), @2(vyy400, vyy401), app(app(app(ty_@3, bcc), bcd), bce), bca) → new_esEs1(vyy3000, vyy400, bcc, bcd, bce)
new_esEs1(@3(vyy3000, vyy3001, vyy3002), @3(vyy400, vyy401, vyy402), ef, eg, app(ty_Maybe, fb)) → new_esEs0(vyy3002, vyy402, fb)
new_esEs2(@2(vyy3000, vyy3001), @2(vyy400, vyy401), app(ty_Maybe, bcb), bca) → new_esEs0(vyy3000, vyy400, bcb)
new_esEs1(@3(vyy3000, vyy3001, vyy3002), @3(vyy400, vyy401, vyy402), app(ty_[], bad), eg, gd) → new_esEs3(vyy3000, vyy400, bad)
new_esEs(Left(vyy3000), Left(vyy400), app(ty_Maybe, bc), bb) → new_esEs0(vyy3000, vyy400, bc)
new_esEs3(:(vyy3000, vyy3001), :(vyy400, vyy401), bda) → new_esEs3(vyy3001, vyy401, bda)
new_esEs(Left(vyy3000), Left(vyy400), app(ty_[], ca), bb) → new_esEs3(vyy3000, vyy400, ca)
new_esEs1(@3(vyy3000, vyy3001, vyy3002), @3(vyy400, vyy401, vyy402), ef, eg, app(app(ty_@2, fg), fh)) → new_esEs2(vyy3002, vyy402, fg, fh)
new_esEs0(Just(vyy3000), Just(vyy400), app(app(ty_Either, de), df)) → new_esEs(vyy3000, vyy400, de, df)
new_esEs1(@3(vyy3000, vyy3001, vyy3002), @3(vyy400, vyy401, vyy402), app(app(app(ty_@3, hg), hh), baa), eg, gd) → new_esEs1(vyy3000, vyy400, hg, hh, baa)
new_esEs1(@3(vyy3000, vyy3001, vyy3002), @3(vyy400, vyy401, vyy402), ef, app(ty_[], hc), gd) → new_esEs3(vyy3001, vyy401, hc)
new_esEs0(Just(vyy3000), Just(vyy400), app(app(ty_@2, ec), ed)) → new_esEs2(vyy3000, vyy400, ec, ed)
new_esEs(Right(vyy3000), Right(vyy400), cb, app(app(app(ty_@3, cf), cg), da)) → new_esEs1(vyy3000, vyy400, cf, cg, da)
new_esEs(Right(vyy3000), Right(vyy400), cb, app(app(ty_Either, cc), cd)) → new_esEs(vyy3000, vyy400, cc, cd)
new_esEs(Right(vyy3000), Right(vyy400), cb, app(ty_[], dd)) → new_esEs3(vyy3000, vyy400, dd)
new_esEs0(Just(vyy3000), Just(vyy400), app(ty_[], ee)) → new_esEs3(vyy3000, vyy400, ee)
new_esEs1(@3(vyy3000, vyy3001, vyy3002), @3(vyy400, vyy401, vyy402), ef, eg, app(app(ty_Either, eh), fa)) → new_esEs(vyy3002, vyy402, eh, fa)
new_esEs2(@2(vyy3000, vyy3001), @2(vyy400, vyy401), app(ty_[], bch), bca) → new_esEs3(vyy3000, vyy400, bch)
new_esEs(Left(vyy3000), Left(vyy400), app(app(ty_@2, bg), bh), bb) → new_esEs2(vyy3000, vyy400, bg, bh)
new_esEs1(@3(vyy3000, vyy3001, vyy3002), @3(vyy400, vyy401, vyy402), ef, app(app(ty_Either, gb), gc), gd) → new_esEs(vyy3001, vyy401, gb, gc)
new_esEs2(@2(vyy3000, vyy3001), @2(vyy400, vyy401), bae, app(app(ty_Either, baf), bag)) → new_esEs(vyy3001, vyy401, baf, bag)
new_esEs1(@3(vyy3000, vyy3001, vyy3002), @3(vyy400, vyy401, vyy402), app(app(ty_Either, hd), he), eg, gd) → new_esEs(vyy3000, vyy400, hd, he)
new_esEs(Right(vyy3000), Right(vyy400), cb, app(ty_Maybe, ce)) → new_esEs0(vyy3000, vyy400, ce)
new_esEs(Left(vyy3000), Left(vyy400), app(app(app(ty_@3, bd), be), bf), bb) → new_esEs1(vyy3000, vyy400, bd, be, bf)
new_esEs1(@3(vyy3000, vyy3001, vyy3002), @3(vyy400, vyy401, vyy402), app(ty_Maybe, hf), eg, gd) → new_esEs0(vyy3000, vyy400, hf)
new_esEs2(@2(vyy3000, vyy3001), @2(vyy400, vyy401), bae, app(ty_[], bbf)) → new_esEs3(vyy3001, vyy401, bbf)
new_esEs1(@3(vyy3000, vyy3001, vyy3002), @3(vyy400, vyy401, vyy402), app(app(ty_@2, bab), bac), eg, gd) → new_esEs2(vyy3000, vyy400, bab, bac)
new_esEs3(:(vyy3000, vyy3001), :(vyy400, vyy401), app(app(ty_@2, bdh), bea)) → new_esEs2(vyy3000, vyy400, bdh, bea)
new_esEs(Right(vyy3000), Right(vyy400), cb, app(app(ty_@2, db), dc)) → new_esEs2(vyy3000, vyy400, db, dc)
new_esEs0(Just(vyy3000), Just(vyy400), app(app(app(ty_@3, dh), ea), eb)) → new_esEs1(vyy3000, vyy400, dh, ea, eb)
new_esEs3(:(vyy3000, vyy3001), :(vyy400, vyy401), app(app(app(ty_@3, bde), bdf), bdg)) → new_esEs1(vyy3000, vyy400, bde, bdf, bdg)
new_esEs(Left(vyy3000), Left(vyy400), app(app(ty_Either, h), ba), bb) → new_esEs(vyy3000, vyy400, h, ba)

R is empty.
Q is empty.
We have to consider all minimal (P,Q,R)-chains.
By using the subterm criterion [20] together with the size-change analysis [32] we have proven that there are no infinite chains for this DP problem.

From the DPs we obtained the following set of size-change graphs:



↳ HASKELL
  ↳ LR
    ↳ HASKELL
      ↳ CR
        ↳ HASKELL
          ↳ IFR
            ↳ HASKELL
              ↳ BR
                ↳ HASKELL
                  ↳ COR
                    ↳ HASKELL
                      ↳ LetRed
                        ↳ HASKELL
                          ↳ NumRed
                            ↳ HASKELL
                              ↳ Narrow
                                ↳ AND
                                  ↳ QDP
                                  ↳ QDP
                                  ↳ QDP
                                  ↳ QDP
                                  ↳ QDP
QDP
                                    ↳ QDPSizeChangeProof
                                  ↳ QDP
                                  ↳ QDP

Q DP problem:
The TRS P consists of the following rules:

new_ltEs0(@2(vyy650, vyy651), @2(vyy660, vyy661), app(app(ty_@2, gf), gg), ge) → new_lt0(vyy650, vyy660, gf, gg)
new_compare21(Just(vyy6500), Just(vyy6600), False, app(app(ty_@2, hg), hh)) → new_ltEs0(vyy6500, vyy6600, hg, hh)
new_ltEs2(Left(vyy650), Left(vyy660), app(ty_[], bbf), bah) → new_ltEs3(vyy650, vyy660, bbf)
new_primCompAux(vyy650, vyy660, vyy126, app(app(app(ty_@3, bdb), bdc), bdd)) → new_compare1(vyy650, vyy660, bdb, bdc, bdd)
new_ltEs0(@2(vyy650, vyy651), @2(vyy660, vyy661), eg, app(ty_Maybe, ff)) → new_ltEs1(vyy651, vyy661, ff)
new_ltEs(@3(vyy650, vyy651, vyy652), @3(vyy660, vyy661, vyy662), h, app(app(ty_@2, cg), da), cf) → new_lt0(vyy651, vyy661, cg, da)
new_primCompAux(vyy650, vyy660, vyy126, app(app(ty_@2, bde), bdf)) → new_compare3(vyy650, vyy660, bde, bdf)
new_ltEs(@3(vyy650, vyy651, vyy652), @3(vyy660, vyy661, vyy662), app(app(ty_@2, ea), eb), ba, cf) → new_compare20(vyy650, vyy660, new_esEs5(vyy650, vyy660, ea, eb), ea, eb)
new_ltEs2(Left(vyy650), Left(vyy660), app(app(ty_Either, bbd), bbe), bah) → new_ltEs2(vyy650, vyy660, bbd, bbe)
new_ltEs(@3(vyy650, vyy651, vyy652), @3(vyy660, vyy661, vyy662), app(ty_Maybe, ec), ba, cf) → new_compare21(vyy650, vyy660, new_esEs6(vyy650, vyy660, ec), ec)
new_ltEs(@3(vyy650, vyy651, vyy652), @3(vyy660, vyy661, vyy662), h, app(app(ty_Either, dc), dd), cf) → new_lt2(vyy651, vyy661, dc, dd)
new_ltEs2(Right(vyy650), Right(vyy660), bbg, app(ty_[], bch)) → new_ltEs3(vyy650, vyy660, bch)
new_compare3(vyy650, vyy660, ea, eb) → new_compare20(vyy650, vyy660, new_esEs5(vyy650, vyy660, ea, eb), ea, eb)
new_ltEs1(Just(vyy6500), Just(vyy6600), app(ty_Maybe, baa)) → new_ltEs1(vyy6500, vyy6600, baa)
new_ltEs0(@2(vyy650, vyy651), @2(vyy660, vyy661), eg, app(app(app(ty_@3, eh), fa), fb)) → new_ltEs(vyy651, vyy661, eh, fa, fb)
new_ltEs2(Left(vyy650), Left(vyy660), app(app(ty_@2, bba), bbb), bah) → new_ltEs0(vyy650, vyy660, bba, bbb)
new_ltEs1(Just(vyy6500), Just(vyy6600), app(app(app(ty_@3, hd), he), hf)) → new_ltEs(vyy6500, vyy6600, hd, he, hf)
new_primCompAux(vyy650, vyy660, vyy126, app(ty_[], beb)) → new_compare(vyy650, vyy660, beb)
new_ltEs3(:(vyy650, vyy651), :(vyy660, vyy661), bda) → new_compare(vyy651, vyy661, bda)
new_compare21(Just(vyy6500), Just(vyy6600), False, app(app(app(ty_@3, hd), he), hf)) → new_ltEs(vyy6500, vyy6600, hd, he, hf)
new_compare21(Just(vyy6500), Just(vyy6600), False, app(ty_Maybe, baa)) → new_ltEs1(vyy6500, vyy6600, baa)
new_lt2(vyy650, vyy660, ed, ee) → new_compare22(vyy650, vyy660, new_esEs7(vyy650, vyy660, ed, ee), ed, ee)
new_ltEs(@3(vyy650, vyy651, vyy652), @3(vyy660, vyy661, vyy662), h, ba, app(app(ty_Either, bh), ca)) → new_ltEs2(vyy652, vyy662, bh, ca)
new_primCompAux(vyy650, vyy660, vyy126, app(app(ty_Either, bdh), bea)) → new_compare5(vyy650, vyy660, bdh, bea)
new_lt0(vyy650, vyy660, ea, eb) → new_compare20(vyy650, vyy660, new_esEs5(vyy650, vyy660, ea, eb), ea, eb)
new_lt(vyy650, vyy660, df, dg, dh) → new_compare2(vyy650, vyy660, new_esEs4(vyy650, vyy660, df, dg, dh), df, dg, dh)
new_compare21(Just(vyy6500), Just(vyy6600), False, app(app(ty_Either, bab), bac)) → new_ltEs2(vyy6500, vyy6600, bab, bac)
new_compare21(Just(vyy6500), Just(vyy6600), False, app(ty_[], bad)) → new_ltEs3(vyy6500, vyy6600, bad)
new_compare20(vyy650, vyy660, False, ea, eb) → new_ltEs0(vyy650, vyy660, ea, eb)
new_compare1(vyy650, vyy660, df, dg, dh) → new_compare2(vyy650, vyy660, new_esEs4(vyy650, vyy660, df, dg, dh), df, dg, dh)
new_ltEs2(Left(vyy650), Left(vyy660), app(ty_Maybe, bbc), bah) → new_ltEs1(vyy650, vyy660, bbc)
new_ltEs2(Right(vyy650), Right(vyy660), bbg, app(app(app(ty_@3, bbh), bca), bcb)) → new_ltEs(vyy650, vyy660, bbh, bca, bcb)
new_ltEs2(Left(vyy650), Left(vyy660), app(app(app(ty_@3, bae), baf), bag), bah) → new_ltEs(vyy650, vyy660, bae, baf, bag)
new_ltEs0(@2(vyy650, vyy651), @2(vyy660, vyy661), app(ty_[], hc), ge) → new_lt3(vyy650, vyy660, hc)
new_ltEs2(Right(vyy650), Right(vyy660), bbg, app(app(ty_Either, bcf), bcg)) → new_ltEs2(vyy650, vyy660, bcf, bcg)
new_ltEs0(@2(vyy650, vyy651), @2(vyy660, vyy661), eg, app(app(ty_@2, fc), fd)) → new_ltEs0(vyy651, vyy661, fc, fd)
new_lt1(vyy650, vyy660, ec) → new_compare21(vyy650, vyy660, new_esEs6(vyy650, vyy660, ec), ec)
new_ltEs(@3(vyy650, vyy651, vyy652), @3(vyy660, vyy661, vyy662), h, ba, app(ty_Maybe, bg)) → new_ltEs1(vyy652, vyy662, bg)
new_ltEs(@3(vyy650, vyy651, vyy652), @3(vyy660, vyy661, vyy662), h, app(app(app(ty_@3, cc), cd), ce), cf) → new_lt(vyy651, vyy661, cc, cd, ce)
new_ltEs1(Just(vyy6500), Just(vyy6600), app(app(ty_@2, hg), hh)) → new_ltEs0(vyy6500, vyy6600, hg, hh)
new_ltEs0(@2(vyy650, vyy651), @2(vyy660, vyy661), eg, app(app(ty_Either, fg), fh)) → new_ltEs2(vyy651, vyy661, fg, fh)
new_ltEs(@3(vyy650, vyy651, vyy652), @3(vyy660, vyy661, vyy662), h, ba, app(ty_[], cb)) → new_ltEs3(vyy652, vyy662, cb)
new_ltEs(@3(vyy650, vyy651, vyy652), @3(vyy660, vyy661, vyy662), h, app(ty_[], de), cf) → new_lt3(vyy651, vyy661, de)
new_compare(:(vyy650, vyy651), :(vyy660, vyy661), bda) → new_compare(vyy651, vyy661, bda)
new_lt3(vyy650, vyy660, ef) → new_compare(vyy650, vyy660, ef)
new_compare2(vyy650, vyy660, False, df, dg, dh) → new_ltEs(vyy650, vyy660, df, dg, dh)
new_ltEs3(:(vyy650, vyy651), :(vyy660, vyy661), bda) → new_primCompAux(vyy650, vyy660, new_compare0(vyy651, vyy661, bda), bda)
new_compare(:(vyy650, vyy651), :(vyy660, vyy661), bda) → new_primCompAux(vyy650, vyy660, new_compare0(vyy651, vyy661, bda), bda)
new_compare5(vyy650, vyy660, ed, ee) → new_compare22(vyy650, vyy660, new_esEs7(vyy650, vyy660, ed, ee), ed, ee)
new_ltEs1(Just(vyy6500), Just(vyy6600), app(ty_[], bad)) → new_ltEs3(vyy6500, vyy6600, bad)
new_ltEs1(Just(vyy6500), Just(vyy6600), app(app(ty_Either, bab), bac)) → new_ltEs2(vyy6500, vyy6600, bab, bac)
new_ltEs2(Right(vyy650), Right(vyy660), bbg, app(app(ty_@2, bcc), bcd)) → new_ltEs0(vyy650, vyy660, bcc, bcd)
new_ltEs0(@2(vyy650, vyy651), @2(vyy660, vyy661), app(app(app(ty_@3, gb), gc), gd), ge) → new_lt(vyy650, vyy660, gb, gc, gd)
new_ltEs(@3(vyy650, vyy651, vyy652), @3(vyy660, vyy661, vyy662), app(ty_[], ef), ba, cf) → new_compare(vyy650, vyy660, ef)
new_compare4(vyy650, vyy660, ec) → new_compare21(vyy650, vyy660, new_esEs6(vyy650, vyy660, ec), ec)
new_ltEs0(@2(vyy650, vyy651), @2(vyy660, vyy661), eg, app(ty_[], ga)) → new_ltEs3(vyy651, vyy661, ga)
new_primCompAux(vyy650, vyy660, vyy126, app(ty_Maybe, bdg)) → new_compare4(vyy650, vyy660, bdg)
new_ltEs(@3(vyy650, vyy651, vyy652), @3(vyy660, vyy661, vyy662), app(app(app(ty_@3, df), dg), dh), ba, cf) → new_compare2(vyy650, vyy660, new_esEs4(vyy650, vyy660, df, dg, dh), df, dg, dh)
new_ltEs(@3(vyy650, vyy651, vyy652), @3(vyy660, vyy661, vyy662), h, ba, app(app(app(ty_@3, bb), bc), bd)) → new_ltEs(vyy652, vyy662, bb, bc, bd)
new_compare22(vyy650, vyy660, False, ed, ee) → new_ltEs2(vyy650, vyy660, ed, ee)
new_ltEs0(@2(vyy650, vyy651), @2(vyy660, vyy661), app(app(ty_Either, ha), hb), ge) → new_lt2(vyy650, vyy660, ha, hb)
new_ltEs0(@2(vyy650, vyy651), @2(vyy660, vyy661), app(ty_Maybe, gh), ge) → new_lt1(vyy650, vyy660, gh)
new_ltEs(@3(vyy650, vyy651, vyy652), @3(vyy660, vyy661, vyy662), app(app(ty_Either, ed), ee), ba, cf) → new_compare22(vyy650, vyy660, new_esEs7(vyy650, vyy660, ed, ee), ed, ee)
new_ltEs(@3(vyy650, vyy651, vyy652), @3(vyy660, vyy661, vyy662), h, app(ty_Maybe, db), cf) → new_lt1(vyy651, vyy661, db)
new_ltEs2(Right(vyy650), Right(vyy660), bbg, app(ty_Maybe, bce)) → new_ltEs1(vyy650, vyy660, bce)
new_ltEs(@3(vyy650, vyy651, vyy652), @3(vyy660, vyy661, vyy662), h, ba, app(app(ty_@2, be), bf)) → new_ltEs0(vyy652, vyy662, be, bf)

The TRS R consists of the following rules:

new_lt7(vyy650, vyy660, ty_Int) → new_lt10(vyy650, vyy660)
new_esEs23(vyy650, vyy660, app(app(ty_Either, ed), ee)) → new_esEs7(vyy650, vyy660, ed, ee)
new_lt7(vyy650, vyy660, ty_Ordering) → new_lt17(vyy650, vyy660)
new_esEs6(Just(vyy3000), Just(vyy400), app(app(ty_@2, bfc), bfd)) → new_esEs5(vyy3000, vyy400, bfc, bfd)
new_esEs7(Left(vyy3000), Left(vyy400), app(app(ty_Either, bgc), bgd), bgb) → new_esEs7(vyy3000, vyy400, bgc, bgd)
new_ltEs19(vyy652, vyy662, ty_Ordering) → new_ltEs16(vyy652, vyy662)
new_ltEs16(GT, GT) → True
new_compare14(Float(vyy650, vyy651), Float(vyy660, vyy661)) → new_compare6(new_sr(vyy650, vyy660), new_sr(vyy651, vyy661))
new_lt7(vyy650, vyy660, app(ty_Maybe, gh)) → new_lt12(vyy650, vyy660, gh)
new_lt7(vyy650, vyy660, ty_Float) → new_lt13(vyy650, vyy660)
new_esEs16(Float(vyy3000, vyy3001), Float(vyy400, vyy401)) → new_esEs10(new_sr(vyy3000, vyy400), new_sr(vyy3001, vyy401))
new_ltEs5(Right(vyy650), Right(vyy660), bbg, ty_Float) → new_ltEs12(vyy650, vyy660)
new_lt20(vyy650, vyy660, ty_Int) → new_lt10(vyy650, vyy660)
new_ltEs18(vyy651, vyy661, app(ty_[], ga)) → new_ltEs15(vyy651, vyy661, ga)
new_compare11(vyy650, vyy660, ea, eb) → new_compare26(vyy650, vyy660, new_esEs5(vyy650, vyy660, ea, eb), ea, eb)
new_esEs7(Right(vyy3000), Right(vyy400), bhe, app(ty_[], cag)) → new_esEs17(vyy3000, vyy400, cag)
new_lt20(vyy650, vyy660, ty_Char) → new_lt11(vyy650, vyy660)
new_compare10(vyy650, vyy660, True, ed, ee) → LT
new_lt18(vyy650, vyy660, bga) → new_esEs8(new_compare18(vyy650, vyy660, bga), LT)
new_lt19(vyy651, vyy661, ty_Integer) → new_lt5(vyy651, vyy661)
new_esEs18(vyy650, vyy660, app(ty_[], hc)) → new_esEs17(vyy650, vyy660, hc)
new_ltEs16(LT, GT) → True
new_compare19(vyy650, vyy660, ed, ee) → new_compare23(vyy650, vyy660, new_esEs7(vyy650, vyy660, ed, ee), ed, ee)
new_ltEs5(Right(vyy650), Right(vyy660), bbg, ty_Bool) → new_ltEs14(vyy650, vyy660)
new_esEs23(vyy650, vyy660, app(ty_[], ef)) → new_esEs17(vyy650, vyy660, ef)
new_esEs23(vyy650, vyy660, ty_Float) → new_esEs16(vyy650, vyy660)
new_primMulNat0(Zero, Zero) → Zero
new_esEs6(Just(vyy3000), Just(vyy400), app(ty_Ratio, bef)) → new_esEs13(vyy3000, vyy400, bef)
new_esEs27(vyy3001, vyy401, app(app(app(ty_@3, che), chf), chg)) → new_esEs4(vyy3001, vyy401, che, chf, chg)
new_compare29(vyy650, vyy660, True) → EQ
new_esEs23(vyy650, vyy660, app(ty_Ratio, bga)) → new_esEs13(vyy650, vyy660, bga)
new_esEs18(vyy650, vyy660, ty_Double) → new_esEs9(vyy650, vyy660)
new_lt19(vyy651, vyy661, app(app(ty_Either, dc), dd)) → new_lt15(vyy651, vyy661, dc, dd)
new_esEs23(vyy650, vyy660, ty_Double) → new_esEs9(vyy650, vyy660)
new_esEs7(Right(vyy3000), Right(vyy400), bhe, ty_Ordering) → new_esEs8(vyy3000, vyy400)
new_esEs19(vyy3001, vyy401, ty_Int) → new_esEs10(vyy3001, vyy401)
new_ltEs14(False, True) → True
new_esEs26(vyy3002, vyy402, ty_Char) → new_esEs15(vyy3002, vyy402)
new_lt19(vyy651, vyy661, ty_Ordering) → new_lt17(vyy651, vyy661)
new_esEs23(vyy650, vyy660, ty_Char) → new_esEs15(vyy650, vyy660)
new_lt4(vyy650, vyy660) → new_esEs8(new_compare12(vyy650, vyy660), LT)
new_esEs6(Just(vyy3000), Just(vyy400), ty_Bool) → new_esEs11(vyy3000, vyy400)
new_esEs27(vyy3001, vyy401, ty_Char) → new_esEs15(vyy3001, vyy401)
new_ltEs8(vyy65, vyy66) → new_not(new_esEs8(new_compare7(vyy65, vyy66), GT))
new_esEs20(vyy3000, vyy400, app(ty_Ratio, ccf)) → new_esEs13(vyy3000, vyy400, ccf)
new_esEs7(Left(vyy3000), Left(vyy400), ty_Integer, bgb) → new_esEs14(vyy3000, vyy400)
new_ltEs5(Left(vyy650), Right(vyy660), bbg, bah) → True
new_ltEs5(Right(vyy650), Right(vyy660), bbg, app(ty_Ratio, dbg)) → new_ltEs17(vyy650, vyy660, dbg)
new_lt19(vyy651, vyy661, ty_Float) → new_lt13(vyy651, vyy661)
new_esEs22(vyy651, vyy661, app(app(ty_@2, cg), da)) → new_esEs5(vyy651, vyy661, cg, da)
new_compare0(:(vyy650, vyy651), :(vyy660, vyy661), bda) → new_primCompAux0(vyy650, vyy660, new_compare0(vyy651, vyy661, bda), bda)
new_esEs22(vyy651, vyy661, app(ty_Maybe, db)) → new_esEs6(vyy651, vyy661, db)
new_lt20(vyy650, vyy660, app(app(ty_@2, ea), eb)) → new_lt9(vyy650, vyy660, ea, eb)
new_esEs27(vyy3001, vyy401, app(ty_Maybe, chd)) → new_esEs6(vyy3001, vyy401, chd)
new_ltEs18(vyy651, vyy661, ty_Int) → new_ltEs4(vyy651, vyy661)
new_ltEs5(Right(vyy650), Right(vyy660), bbg, app(app(ty_Either, bcf), bcg)) → new_ltEs5(vyy650, vyy660, bcf, bcg)
new_esEs12(@0, @0) → True
new_esEs28(vyy3000, vyy400, ty_@0) → new_esEs12(vyy3000, vyy400)
new_compare30(vyy650, vyy660, app(app(ty_Either, bdh), bea)) → new_compare19(vyy650, vyy660, bdh, bea)
new_esEs26(vyy3002, vyy402, ty_Integer) → new_esEs14(vyy3002, vyy402)
new_esEs18(vyy650, vyy660, app(app(app(ty_@3, gb), gc), gd)) → new_esEs4(vyy650, vyy660, gb, gc, gd)
new_compare17(vyy650, vyy660, False, ec) → GT
new_esEs22(vyy651, vyy661, app(app(ty_Either, dc), dd)) → new_esEs7(vyy651, vyy661, dc, dd)
new_ltEs5(Right(vyy650), Left(vyy660), bbg, bah) → False
new_esEs7(Right(vyy3000), Right(vyy400), bhe, ty_Integer) → new_esEs14(vyy3000, vyy400)
new_lt20(vyy650, vyy660, ty_Bool) → new_lt14(vyy650, vyy660)
new_lt7(vyy650, vyy660, ty_Bool) → new_lt14(vyy650, vyy660)
new_ltEs5(Left(vyy650), Left(vyy660), app(ty_Ratio, dbf), bah) → new_ltEs17(vyy650, vyy660, dbf)
new_esEs7(Right(vyy3000), Right(vyy400), bhe, app(ty_Maybe, caa)) → new_esEs6(vyy3000, vyy400, caa)
new_pePe(False, vyy125) → vyy125
new_ltEs5(Right(vyy650), Right(vyy660), bbg, ty_Char) → new_ltEs11(vyy650, vyy660)
new_esEs7(Left(vyy3000), Right(vyy400), bhe, bgb) → False
new_esEs7(Right(vyy3000), Left(vyy400), bhe, bgb) → False
new_esEs27(vyy3001, vyy401, app(app(ty_Either, cha), chb)) → new_esEs7(vyy3001, vyy401, cha, chb)
new_ltEs7(Just(vyy6500), Just(vyy6600), ty_Integer) → new_ltEs13(vyy6500, vyy6600)
new_compare30(vyy650, vyy660, ty_Integer) → new_compare15(vyy650, vyy660)
new_ltEs5(Right(vyy650), Right(vyy660), bbg, ty_Double) → new_ltEs8(vyy650, vyy660)
new_lt19(vyy651, vyy661, app(ty_[], de)) → new_lt16(vyy651, vyy661, de)
new_esEs19(vyy3001, vyy401, app(ty_Maybe, cbe)) → new_esEs6(vyy3001, vyy401, cbe)
new_ltEs7(Just(vyy6500), Just(vyy6600), ty_Int) → new_ltEs4(vyy6500, vyy6600)
new_ltEs16(EQ, GT) → True
new_esEs28(vyy3000, vyy400, app(app(app(ty_@3, dag), dah), dba)) → new_esEs4(vyy3000, vyy400, dag, dah, dba)
new_ltEs5(Left(vyy650), Left(vyy660), ty_Float, bah) → new_ltEs12(vyy650, vyy660)
new_ltEs5(Right(vyy650), Right(vyy660), bbg, ty_Ordering) → new_ltEs16(vyy650, vyy660)
new_esEs19(vyy3001, vyy401, ty_Float) → new_esEs16(vyy3001, vyy401)
new_lt20(vyy650, vyy660, ty_Ordering) → new_lt17(vyy650, vyy660)
new_esEs27(vyy3001, vyy401, app(ty_[], dab)) → new_esEs17(vyy3001, vyy401, dab)
new_esEs22(vyy651, vyy661, ty_Ordering) → new_esEs8(vyy651, vyy661)
new_esEs7(Left(vyy3000), Left(vyy400), ty_Double, bgb) → new_esEs9(vyy3000, vyy400)
new_esEs19(vyy3001, vyy401, app(app(ty_Either, cbb), cbc)) → new_esEs7(vyy3001, vyy401, cbb, cbc)
new_ltEs5(Left(vyy650), Left(vyy660), ty_Integer, bah) → new_ltEs13(vyy650, vyy660)
new_esEs20(vyy3000, vyy400, app(app(ty_@2, cdc), cdd)) → new_esEs5(vyy3000, vyy400, cdc, cdd)
new_esEs7(Right(vyy3000), Right(vyy400), bhe, ty_Double) → new_esEs9(vyy3000, vyy400)
new_esEs14(Integer(vyy3000), Integer(vyy400)) → new_primEqInt(vyy3000, vyy400)
new_lt7(vyy650, vyy660, app(app(ty_@2, gf), gg)) → new_lt9(vyy650, vyy660, gf, gg)
new_ltEs18(vyy651, vyy661, ty_Char) → new_ltEs11(vyy651, vyy661)
new_esEs7(Right(vyy3000), Right(vyy400), bhe, app(app(ty_@2, cae), caf)) → new_esEs5(vyy3000, vyy400, cae, caf)
new_primCmpNat0(Zero, Succ(vyy6600)) → LT
new_compare7(Double(vyy650, vyy651), Double(vyy660, vyy661)) → new_compare6(new_sr(vyy650, vyy660), new_sr(vyy651, vyy661))
new_ltEs18(vyy651, vyy661, ty_@0) → new_ltEs6(vyy651, vyy661)
new_esEs26(vyy3002, vyy402, ty_Bool) → new_esEs11(vyy3002, vyy402)
new_esEs8(LT, LT) → True
new_esEs19(vyy3001, vyy401, app(ty_[], ccc)) → new_esEs17(vyy3001, vyy401, ccc)
new_lt9(vyy650, vyy660, ea, eb) → new_esEs8(new_compare11(vyy650, vyy660, ea, eb), LT)
new_lt7(vyy650, vyy660, app(ty_Ratio, bfh)) → new_lt18(vyy650, vyy660, bfh)
new_esEs21(vyy3000, vyy400, app(ty_Ratio, cea)) → new_esEs13(vyy3000, vyy400, cea)
new_esEs20(vyy3000, vyy400, ty_Bool) → new_esEs11(vyy3000, vyy400)
new_esEs7(Right(vyy3000), Right(vyy400), bhe, ty_Float) → new_esEs16(vyy3000, vyy400)
new_pePe(True, vyy125) → True
new_compare0([], [], bda) → EQ
new_primEqNat0(Zero, Zero) → True
new_lt6(vyy650, vyy660, df, dg, dh) → new_esEs8(new_compare16(vyy650, vyy660, df, dg, dh), LT)
new_esEs19(vyy3001, vyy401, app(ty_Ratio, cbd)) → new_esEs13(vyy3001, vyy401, cbd)
new_esEs7(Left(vyy3000), Left(vyy400), app(app(ty_@2, bhb), bhc), bgb) → new_esEs5(vyy3000, vyy400, bhb, bhc)
new_esEs26(vyy3002, vyy402, app(ty_Maybe, cgb)) → new_esEs6(vyy3002, vyy402, cgb)
new_primMulNat0(Succ(vyy300100), Succ(vyy40100)) → new_primPlusNat1(new_primMulNat0(vyy300100, Succ(vyy40100)), vyy40100)
new_compare111(vyy650, vyy660, False, ea, eb) → GT
new_esEs26(vyy3002, vyy402, app(ty_Ratio, cga)) → new_esEs13(vyy3002, vyy402, cga)
new_lt7(vyy650, vyy660, app(ty_[], hc)) → new_lt16(vyy650, vyy660, hc)
new_esEs6(Just(vyy3000), Just(vyy400), ty_@0) → new_esEs12(vyy3000, vyy400)
new_esEs27(vyy3001, vyy401, app(ty_Ratio, chc)) → new_esEs13(vyy3001, vyy401, chc)
new_ltEs7(Just(vyy6500), Just(vyy6600), ty_Float) → new_ltEs12(vyy6500, vyy6600)
new_esEs7(Left(vyy3000), Left(vyy400), ty_Ordering, bgb) → new_esEs8(vyy3000, vyy400)
new_esEs5(@2(vyy3000, vyy3001), @2(vyy400, vyy401), cah, cba) → new_asAs(new_esEs20(vyy3000, vyy400, cah), new_esEs19(vyy3001, vyy401, cba))
new_ltEs16(EQ, LT) → False
new_ltEs6(vyy65, vyy66) → new_not(new_esEs8(new_compare12(vyy65, vyy66), GT))
new_esEs18(vyy650, vyy660, app(app(ty_@2, gf), gg)) → new_esEs5(vyy650, vyy660, gf, gg)
new_compare25(vyy650, vyy660, False) → new_compare110(vyy650, vyy660, new_ltEs14(vyy650, vyy660))
new_esEs15(Char(vyy3000), Char(vyy400)) → new_primEqNat0(vyy3000, vyy400)
new_ltEs16(GT, EQ) → False
new_sr(vyy3001, vyy401) → new_primMulInt(vyy3001, vyy401)
new_esEs20(vyy3000, vyy400, ty_Char) → new_esEs15(vyy3000, vyy400)
new_esEs22(vyy651, vyy661, ty_Double) → new_esEs9(vyy651, vyy661)
new_esEs26(vyy3002, vyy402, ty_Ordering) → new_esEs8(vyy3002, vyy402)
new_ltEs18(vyy651, vyy661, app(app(app(ty_@3, eh), fa), fb)) → new_ltEs9(vyy651, vyy661, eh, fa, fb)
new_esEs8(GT, GT) → True
new_lt19(vyy651, vyy661, ty_@0) → new_lt4(vyy651, vyy661)
new_ltEs7(Just(vyy6500), Just(vyy6600), app(app(app(ty_@3, hd), he), hf)) → new_ltEs9(vyy6500, vyy6600, hd, he, hf)
new_esEs7(Left(vyy3000), Left(vyy400), ty_Int, bgb) → new_esEs10(vyy3000, vyy400)
new_esEs7(Right(vyy3000), Right(vyy400), bhe, app(app(ty_Either, bhf), bhg)) → new_esEs7(vyy3000, vyy400, bhf, bhg)
new_esEs26(vyy3002, vyy402, app(app(app(ty_@3, cgc), cgd), cge)) → new_esEs4(vyy3002, vyy402, cgc, cgd, cge)
new_ltEs5(Left(vyy650), Left(vyy660), ty_@0, bah) → new_ltEs6(vyy650, vyy660)
new_esEs8(GT, LT) → False
new_esEs8(LT, GT) → False
new_ltEs18(vyy651, vyy661, app(app(ty_Either, fg), fh)) → new_ltEs5(vyy651, vyy661, fg, fh)
new_compare30(vyy650, vyy660, ty_Char) → new_compare13(vyy650, vyy660)
new_lt16(vyy650, vyy660, ef) → new_esEs8(new_compare0(vyy650, vyy660, ef), LT)
new_esEs28(vyy3000, vyy400, ty_Float) → new_esEs16(vyy3000, vyy400)
new_esEs7(Right(vyy3000), Right(vyy400), bhe, ty_@0) → new_esEs12(vyy3000, vyy400)
new_primEqInt(Neg(Succ(vyy30000)), Neg(Succ(vyy4000))) → new_primEqNat0(vyy30000, vyy4000)
new_compare25(vyy650, vyy660, True) → EQ
new_lt17(vyy650, vyy660) → new_esEs8(new_compare28(vyy650, vyy660), LT)
new_compare30(vyy650, vyy660, app(ty_Maybe, bdg)) → new_compare8(vyy650, vyy660, bdg)
new_compare30(vyy650, vyy660, ty_Int) → new_compare6(vyy650, vyy660)
new_ltEs19(vyy652, vyy662, app(app(ty_@2, be), bf)) → new_ltEs10(vyy652, vyy662, be, bf)
new_esEs20(vyy3000, vyy400, ty_Ordering) → new_esEs8(vyy3000, vyy400)
new_ltEs16(LT, EQ) → True
new_esEs23(vyy650, vyy660, ty_Ordering) → new_esEs8(vyy650, vyy660)
new_compare27(vyy650, vyy660, False, df, dg, dh) → new_compare113(vyy650, vyy660, new_ltEs9(vyy650, vyy660, df, dg, dh), df, dg, dh)
new_ltEs19(vyy652, vyy662, app(app(app(ty_@3, bb), bc), bd)) → new_ltEs9(vyy652, vyy662, bb, bc, bd)
new_ltEs7(Just(vyy6500), Just(vyy6600), app(ty_[], bad)) → new_ltEs15(vyy6500, vyy6600, bad)
new_esEs28(vyy3000, vyy400, ty_Char) → new_esEs15(vyy3000, vyy400)
new_ltEs19(vyy652, vyy662, app(ty_Ratio, cfa)) → new_ltEs17(vyy652, vyy662, cfa)
new_compare30(vyy650, vyy660, app(app(app(ty_@3, bdb), bdc), bdd)) → new_compare16(vyy650, vyy660, bdb, bdc, bdd)
new_esEs21(vyy3000, vyy400, ty_Char) → new_esEs15(vyy3000, vyy400)
new_esEs7(Left(vyy3000), Left(vyy400), app(ty_[], bhd), bgb) → new_esEs17(vyy3000, vyy400, bhd)
new_ltEs5(Right(vyy650), Right(vyy660), bbg, app(app(app(ty_@3, bbh), bca), bcb)) → new_ltEs9(vyy650, vyy660, bbh, bca, bcb)
new_esEs7(Right(vyy3000), Right(vyy400), bhe, app(ty_Ratio, bhh)) → new_esEs13(vyy3000, vyy400, bhh)
new_primEqInt(Neg(Zero), Neg(Zero)) → True
new_esEs7(Left(vyy3000), Left(vyy400), app(ty_Ratio, bge), bgb) → new_esEs13(vyy3000, vyy400, bge)
new_lt7(vyy650, vyy660, ty_Double) → new_lt8(vyy650, vyy660)
new_ltEs7(Just(vyy6500), Just(vyy6600), ty_@0) → new_ltEs6(vyy6500, vyy6600)
new_compare8(vyy650, vyy660, ec) → new_compare24(vyy650, vyy660, new_esEs6(vyy650, vyy660, ec), ec)
new_primEqInt(Neg(Zero), Neg(Succ(vyy4000))) → False
new_primEqInt(Neg(Succ(vyy30000)), Neg(Zero)) → False
new_esEs8(EQ, EQ) → True
new_compare26(vyy650, vyy660, True, ea, eb) → EQ
new_primPlusNat1(Zero, vyy40100) → Succ(vyy40100)
new_lt7(vyy650, vyy660, app(app(app(ty_@3, gb), gc), gd)) → new_lt6(vyy650, vyy660, gb, gc, gd)
new_lt19(vyy651, vyy661, app(app(app(ty_@3, cc), cd), ce)) → new_lt6(vyy651, vyy661, cc, cd, ce)
new_esEs23(vyy650, vyy660, app(app(app(ty_@3, df), dg), dh)) → new_esEs4(vyy650, vyy660, df, dg, dh)
new_ltEs5(Right(vyy650), Right(vyy660), bbg, app(app(ty_@2, bcc), bcd)) → new_ltEs10(vyy650, vyy660, bcc, bcd)
new_esEs26(vyy3002, vyy402, app(app(ty_Either, cfg), cfh)) → new_esEs7(vyy3002, vyy402, cfg, cfh)
new_primCmpInt(Pos(Zero), Neg(Zero)) → EQ
new_primCmpInt(Neg(Zero), Pos(Zero)) → EQ
new_esEs23(vyy650, vyy660, ty_Integer) → new_esEs14(vyy650, vyy660)
new_ltEs16(GT, LT) → False
new_compare6(vyy65, vyy66) → new_primCmpInt(vyy65, vyy66)
new_ltEs18(vyy651, vyy661, app(app(ty_@2, fc), fd)) → new_ltEs10(vyy651, vyy661, fc, fd)
new_lt20(vyy650, vyy660, ty_Double) → new_lt8(vyy650, vyy660)
new_lt7(vyy650, vyy660, app(app(ty_Either, ha), hb)) → new_lt15(vyy650, vyy660, ha, hb)
new_lt20(vyy650, vyy660, app(app(app(ty_@3, df), dg), dh)) → new_lt6(vyy650, vyy660, df, dg, dh)
new_primCmpNat0(Succ(vyy6500), Succ(vyy6600)) → new_primCmpNat0(vyy6500, vyy6600)
new_compare112(vyy650, vyy660, True) → LT
new_esEs6(Nothing, Nothing, bec) → True
new_compare113(vyy650, vyy660, False, df, dg, dh) → GT
new_ltEs18(vyy651, vyy661, ty_Integer) → new_ltEs13(vyy651, vyy661)
new_compare16(vyy650, vyy660, df, dg, dh) → new_compare27(vyy650, vyy660, new_esEs4(vyy650, vyy660, df, dg, dh), df, dg, dh)
new_esEs11(False, False) → True
new_primEqInt(Pos(Succ(vyy30000)), Pos(Succ(vyy4000))) → new_primEqNat0(vyy30000, vyy4000)
new_ltEs18(vyy651, vyy661, ty_Double) → new_ltEs8(vyy651, vyy661)
new_compare10(vyy650, vyy660, False, ed, ee) → GT
new_esEs18(vyy650, vyy660, ty_Int) → new_esEs10(vyy650, vyy660)
new_ltEs5(Left(vyy650), Left(vyy660), app(app(ty_Either, bbd), bbe), bah) → new_ltEs5(vyy650, vyy660, bbd, bbe)
new_esEs21(vyy3000, vyy400, app(ty_Maybe, ceb)) → new_esEs6(vyy3000, vyy400, ceb)
new_ltEs19(vyy652, vyy662, ty_Bool) → new_ltEs14(vyy652, vyy662)
new_esEs20(vyy3000, vyy400, ty_Int) → new_esEs10(vyy3000, vyy400)
new_esEs7(Right(vyy3000), Right(vyy400), bhe, ty_Bool) → new_esEs11(vyy3000, vyy400)
new_ltEs7(Nothing, Just(vyy6600), ec) → True
new_esEs20(vyy3000, vyy400, ty_@0) → new_esEs12(vyy3000, vyy400)
new_esEs7(Right(vyy3000), Right(vyy400), bhe, app(app(app(ty_@3, cab), cac), cad)) → new_esEs4(vyy3000, vyy400, cab, cac, cad)
new_esEs6(Nothing, Just(vyy400), bec) → False
new_esEs6(Just(vyy3000), Nothing, bec) → False
new_primEqNat0(Succ(vyy30000), Succ(vyy4000)) → new_primEqNat0(vyy30000, vyy4000)
new_esEs27(vyy3001, vyy401, ty_Ordering) → new_esEs8(vyy3001, vyy401)
new_esEs27(vyy3001, vyy401, ty_@0) → new_esEs12(vyy3001, vyy401)
new_ltEs14(False, False) → True
new_esEs26(vyy3002, vyy402, ty_@0) → new_esEs12(vyy3002, vyy402)
new_ltEs5(Right(vyy650), Right(vyy660), bbg, app(ty_Maybe, bce)) → new_ltEs7(vyy650, vyy660, bce)
new_primCompAux00(vyy135, LT) → LT
new_compare30(vyy650, vyy660, app(app(ty_@2, bde), bdf)) → new_compare11(vyy650, vyy660, bde, bdf)
new_lt20(vyy650, vyy660, ty_@0) → new_lt4(vyy650, vyy660)
new_primCmpInt(Neg(Succ(vyy6500)), Neg(vyy660)) → new_primCmpNat0(vyy660, Succ(vyy6500))
new_lt19(vyy651, vyy661, app(app(ty_@2, cg), da)) → new_lt9(vyy651, vyy661, cg, da)
new_esEs6(Just(vyy3000), Just(vyy400), ty_Int) → new_esEs10(vyy3000, vyy400)
new_esEs22(vyy651, vyy661, ty_Char) → new_esEs15(vyy651, vyy661)
new_compare9(vyy650, vyy660) → new_compare25(vyy650, vyy660, new_esEs11(vyy650, vyy660))
new_esEs28(vyy3000, vyy400, ty_Ordering) → new_esEs8(vyy3000, vyy400)
new_esEs8(EQ, LT) → False
new_esEs8(LT, EQ) → False
new_primEqInt(Pos(Succ(vyy30000)), Pos(Zero)) → False
new_primEqInt(Pos(Zero), Pos(Succ(vyy4000))) → False
new_primPlusNat0(Zero, Succ(vyy401000)) → Succ(vyy401000)
new_primPlusNat0(Succ(vyy10400), Zero) → Succ(vyy10400)
new_esEs21(vyy3000, vyy400, ty_@0) → new_esEs12(vyy3000, vyy400)
new_esEs7(Right(vyy3000), Right(vyy400), bhe, ty_Int) → new_esEs10(vyy3000, vyy400)
new_primCmpNat0(Zero, Zero) → EQ
new_lt10(vyy650, vyy660) → new_esEs8(new_compare6(vyy650, vyy660), LT)
new_primCmpNat0(Succ(vyy6500), Zero) → GT
new_esEs23(vyy650, vyy660, app(app(ty_@2, ea), eb)) → new_esEs5(vyy650, vyy660, ea, eb)
new_esEs22(vyy651, vyy661, ty_Integer) → new_esEs14(vyy651, vyy661)
new_esEs20(vyy3000, vyy400, app(app(app(ty_@3, cch), cda), cdb)) → new_esEs4(vyy3000, vyy400, cch, cda, cdb)
new_primCmpInt(Neg(Zero), Pos(Succ(vyy6600))) → LT
new_ltEs5(Right(vyy650), Right(vyy660), bbg, ty_Int) → new_ltEs4(vyy650, vyy660)
new_esEs27(vyy3001, vyy401, ty_Double) → new_esEs9(vyy3001, vyy401)
new_esEs22(vyy651, vyy661, app(ty_Ratio, cfb)) → new_esEs13(vyy651, vyy661, cfb)
new_compare18(:%(vyy650, vyy651), :%(vyy660, vyy661), ty_Int) → new_compare6(new_sr(vyy650, vyy661), new_sr(vyy660, vyy651))
new_sr0(Integer(vyy6500), Integer(vyy6610)) → Integer(new_primMulInt(vyy6500, vyy6610))
new_compare29(vyy650, vyy660, False) → new_compare112(vyy650, vyy660, new_ltEs16(vyy650, vyy660))
new_compare30(vyy650, vyy660, ty_Ordering) → new_compare28(vyy650, vyy660)
new_primEqInt(Pos(Succ(vyy30000)), Neg(vyy400)) → False
new_primEqInt(Neg(Succ(vyy30000)), Pos(vyy400)) → False
new_esEs25(vyy3000, vyy400, ty_Int) → new_esEs10(vyy3000, vyy400)
new_esEs19(vyy3001, vyy401, ty_Bool) → new_esEs11(vyy3001, vyy401)
new_esEs28(vyy3000, vyy400, app(ty_Maybe, daf)) → new_esEs6(vyy3000, vyy400, daf)
new_esEs26(vyy3002, vyy402, ty_Int) → new_esEs10(vyy3002, vyy402)
new_primEqInt(Pos(Zero), Neg(Succ(vyy4000))) → False
new_primEqInt(Neg(Zero), Pos(Succ(vyy4000))) → False
new_esEs26(vyy3002, vyy402, app(ty_[], cgh)) → new_esEs17(vyy3002, vyy402, cgh)
new_primCompAux00(vyy135, EQ) → vyy135
new_primCmpInt(Pos(Zero), Pos(Succ(vyy6600))) → new_primCmpNat0(Zero, Succ(vyy6600))
new_esEs28(vyy3000, vyy400, app(app(ty_Either, dac), dad)) → new_esEs7(vyy3000, vyy400, dac, dad)
new_ltEs16(EQ, EQ) → True
new_esEs23(vyy650, vyy660, ty_Bool) → new_esEs11(vyy650, vyy660)
new_esEs8(GT, EQ) → False
new_esEs8(EQ, GT) → False
new_ltEs5(Left(vyy650), Left(vyy660), app(ty_Maybe, bbc), bah) → new_ltEs7(vyy650, vyy660, bbc)
new_esEs21(vyy3000, vyy400, app(ty_[], ceh)) → new_esEs17(vyy3000, vyy400, ceh)
new_ltEs17(vyy65, vyy66, dbh) → new_not(new_esEs8(new_compare18(vyy65, vyy66, dbh), GT))
new_esEs26(vyy3002, vyy402, app(app(ty_@2, cgf), cgg)) → new_esEs5(vyy3002, vyy402, cgf, cgg)
new_esEs7(Left(vyy3000), Left(vyy400), app(app(app(ty_@3, bgg), bgh), bha), bgb) → new_esEs4(vyy3000, vyy400, bgg, bgh, bha)
new_esEs26(vyy3002, vyy402, ty_Float) → new_esEs16(vyy3002, vyy402)
new_ltEs5(Left(vyy650), Left(vyy660), ty_Int, bah) → new_ltEs4(vyy650, vyy660)
new_compare28(vyy650, vyy660) → new_compare29(vyy650, vyy660, new_esEs8(vyy650, vyy660))
new_ltEs15(vyy65, vyy66, bda) → new_not(new_esEs8(new_compare0(vyy65, vyy66, bda), GT))
new_esEs21(vyy3000, vyy400, app(app(ty_@2, cef), ceg)) → new_esEs5(vyy3000, vyy400, cef, ceg)
new_lt8(vyy650, vyy660) → new_esEs8(new_compare7(vyy650, vyy660), LT)
new_compare24(vyy650, vyy660, False, ec) → new_compare17(vyy650, vyy660, new_ltEs7(vyy650, vyy660, ec), ec)
new_compare30(vyy650, vyy660, app(ty_Ratio, dbe)) → new_compare18(vyy650, vyy660, dbe)
new_ltEs5(Left(vyy650), Left(vyy660), ty_Bool, bah) → new_ltEs14(vyy650, vyy660)
new_esEs21(vyy3000, vyy400, ty_Integer) → new_esEs14(vyy3000, vyy400)
new_not(False) → True
new_compare12(@0, @0) → EQ
new_compare24(vyy650, vyy660, True, ec) → EQ
new_esEs7(Left(vyy3000), Left(vyy400), app(ty_Maybe, bgf), bgb) → new_esEs6(vyy3000, vyy400, bgf)
new_ltEs5(Left(vyy650), Left(vyy660), ty_Ordering, bah) → new_ltEs16(vyy650, vyy660)
new_primCmpInt(Pos(Succ(vyy6500)), Pos(vyy660)) → new_primCmpNat0(Succ(vyy6500), vyy660)
new_ltEs5(Left(vyy650), Left(vyy660), ty_Double, bah) → new_ltEs8(vyy650, vyy660)
new_esEs18(vyy650, vyy660, ty_Integer) → new_esEs14(vyy650, vyy660)
new_esEs28(vyy3000, vyy400, app(app(ty_@2, dbb), dbc)) → new_esEs5(vyy3000, vyy400, dbb, dbc)
new_esEs6(Just(vyy3000), Just(vyy400), ty_Integer) → new_esEs14(vyy3000, vyy400)
new_compare0(:(vyy650, vyy651), [], bda) → GT
new_ltEs18(vyy651, vyy661, app(ty_Maybe, ff)) → new_ltEs7(vyy651, vyy661, ff)
new_esEs22(vyy651, vyy661, app(app(app(ty_@3, cc), cd), ce)) → new_esEs4(vyy651, vyy661, cc, cd, ce)
new_ltEs5(Left(vyy650), Left(vyy660), app(app(ty_@2, bba), bbb), bah) → new_ltEs10(vyy650, vyy660, bba, bbb)
new_ltEs5(Left(vyy650), Left(vyy660), ty_Char, bah) → new_ltEs11(vyy650, vyy660)
new_lt19(vyy651, vyy661, app(ty_Ratio, cfb)) → new_lt18(vyy651, vyy661, cfb)
new_ltEs19(vyy652, vyy662, app(ty_[], cb)) → new_ltEs15(vyy652, vyy662, cb)
new_lt12(vyy650, vyy660, ec) → new_esEs8(new_compare8(vyy650, vyy660, ec), LT)
new_esEs22(vyy651, vyy661, ty_Bool) → new_esEs11(vyy651, vyy661)
new_esEs19(vyy3001, vyy401, app(app(app(ty_@3, cbf), cbg), cbh)) → new_esEs4(vyy3001, vyy401, cbf, cbg, cbh)
new_ltEs7(Just(vyy6500), Just(vyy6600), app(ty_Maybe, baa)) → new_ltEs7(vyy6500, vyy6600, baa)
new_primCmpInt(Pos(Succ(vyy6500)), Neg(vyy660)) → GT
new_esEs18(vyy650, vyy660, app(app(ty_Either, ha), hb)) → new_esEs7(vyy650, vyy660, ha, hb)
new_esEs28(vyy3000, vyy400, ty_Double) → new_esEs9(vyy3000, vyy400)
new_primMulInt(Pos(vyy30010), Pos(vyy4010)) → Pos(new_primMulNat0(vyy30010, vyy4010))
new_esEs27(vyy3001, vyy401, ty_Bool) → new_esEs11(vyy3001, vyy401)
new_esEs7(Left(vyy3000), Left(vyy400), ty_@0, bgb) → new_esEs12(vyy3000, vyy400)
new_esEs7(Right(vyy3000), Right(vyy400), bhe, ty_Char) → new_esEs15(vyy3000, vyy400)
new_ltEs5(Left(vyy650), Left(vyy660), app(app(app(ty_@3, bae), baf), bag), bah) → new_ltEs9(vyy650, vyy660, bae, baf, bag)
new_compare18(:%(vyy650, vyy651), :%(vyy660, vyy661), ty_Integer) → new_compare15(new_sr0(vyy650, vyy661), new_sr0(vyy660, vyy651))
new_esEs22(vyy651, vyy661, ty_Int) → new_esEs10(vyy651, vyy661)
new_primMulInt(Neg(vyy30010), Neg(vyy4010)) → Pos(new_primMulNat0(vyy30010, vyy4010))
new_compare110(vyy650, vyy660, True) → LT
new_ltEs5(Right(vyy650), Right(vyy660), bbg, app(ty_[], bch)) → new_ltEs15(vyy650, vyy660, bch)
new_ltEs19(vyy652, vyy662, app(app(ty_Either, bh), ca)) → new_ltEs5(vyy652, vyy662, bh, ca)
new_primEqNat0(Zero, Succ(vyy4000)) → False
new_primEqNat0(Succ(vyy30000), Zero) → False
new_primPlusNat0(Zero, Zero) → Zero
new_ltEs19(vyy652, vyy662, ty_@0) → new_ltEs6(vyy652, vyy662)
new_compare30(vyy650, vyy660, ty_Bool) → new_compare9(vyy650, vyy660)
new_compare110(vyy650, vyy660, False) → GT
new_ltEs14(True, True) → True
new_primEqInt(Pos(Zero), Pos(Zero)) → True
new_lt14(vyy650, vyy660) → new_esEs8(new_compare9(vyy650, vyy660), LT)
new_compare113(vyy650, vyy660, True, df, dg, dh) → LT
new_esEs20(vyy3000, vyy400, app(ty_[], cde)) → new_esEs17(vyy3000, vyy400, cde)
new_esEs27(vyy3001, vyy401, app(app(ty_@2, chh), daa)) → new_esEs5(vyy3001, vyy401, chh, daa)
new_esEs22(vyy651, vyy661, app(ty_[], de)) → new_esEs17(vyy651, vyy661, de)
new_lt19(vyy651, vyy661, ty_Int) → new_lt10(vyy651, vyy661)
new_ltEs7(Nothing, Nothing, ec) → True
new_esEs21(vyy3000, vyy400, app(app(ty_Either, cdg), cdh)) → new_esEs7(vyy3000, vyy400, cdg, cdh)
new_primPlusNat1(Succ(vyy1040), vyy40100) → Succ(Succ(new_primPlusNat0(vyy1040, vyy40100)))
new_ltEs7(Just(vyy6500), Just(vyy6600), ty_Ordering) → new_ltEs16(vyy6500, vyy6600)
new_ltEs11(vyy65, vyy66) → new_not(new_esEs8(new_compare13(vyy65, vyy66), GT))
new_compare23(vyy650, vyy660, True, ed, ee) → EQ
new_primCmpInt(Neg(Zero), Neg(Succ(vyy6600))) → new_primCmpNat0(Succ(vyy6600), Zero)
new_primCmpInt(Pos(Zero), Neg(Succ(vyy6600))) → GT
new_esEs11(True, False) → False
new_esEs11(False, True) → False
new_compare13(Char(vyy650), Char(vyy660)) → new_primCmpNat0(vyy650, vyy660)
new_esEs25(vyy3000, vyy400, ty_Integer) → new_esEs14(vyy3000, vyy400)
new_ltEs9(@3(vyy650, vyy651, vyy652), @3(vyy660, vyy661, vyy662), h, ba, cf) → new_pePe(new_lt20(vyy650, vyy660, h), new_asAs(new_esEs23(vyy650, vyy660, h), new_pePe(new_lt19(vyy651, vyy661, ba), new_asAs(new_esEs22(vyy651, vyy661, ba), new_ltEs19(vyy652, vyy662, cf)))))
new_ltEs18(vyy651, vyy661, ty_Float) → new_ltEs12(vyy651, vyy661)
new_ltEs19(vyy652, vyy662, ty_Double) → new_ltEs8(vyy652, vyy662)
new_esEs21(vyy3000, vyy400, app(app(app(ty_@3, cec), ced), cee)) → new_esEs4(vyy3000, vyy400, cec, ced, cee)
new_esEs6(Just(vyy3000), Just(vyy400), app(app(app(ty_@3, beh), bfa), bfb)) → new_esEs4(vyy3000, vyy400, beh, bfa, bfb)
new_esEs22(vyy651, vyy661, ty_@0) → new_esEs12(vyy651, vyy661)
new_esEs6(Just(vyy3000), Just(vyy400), app(ty_[], bfe)) → new_esEs17(vyy3000, vyy400, bfe)
new_compare26(vyy650, vyy660, False, ea, eb) → new_compare111(vyy650, vyy660, new_ltEs10(vyy650, vyy660, ea, eb), ea, eb)
new_esEs20(vyy3000, vyy400, app(app(ty_Either, ccd), cce)) → new_esEs7(vyy3000, vyy400, ccd, cce)
new_ltEs7(Just(vyy6500), Just(vyy6600), ty_Double) → new_ltEs8(vyy6500, vyy6600)
new_lt11(vyy650, vyy660) → new_esEs8(new_compare13(vyy650, vyy660), LT)
new_esEs18(vyy650, vyy660, app(ty_Maybe, gh)) → new_esEs6(vyy650, vyy660, gh)
new_lt20(vyy650, vyy660, app(ty_[], ef)) → new_lt16(vyy650, vyy660, ef)
new_esEs21(vyy3000, vyy400, ty_Bool) → new_esEs11(vyy3000, vyy400)
new_compare30(vyy650, vyy660, ty_Double) → new_compare7(vyy650, vyy660)
new_ltEs7(Just(vyy6500), Just(vyy6600), app(app(ty_Either, bab), bac)) → new_ltEs5(vyy6500, vyy6600, bab, bac)
new_esEs21(vyy3000, vyy400, ty_Double) → new_esEs9(vyy3000, vyy400)
new_primCompAux0(vyy650, vyy660, vyy126, bda) → new_primCompAux00(vyy126, new_compare30(vyy650, vyy660, bda))
new_esEs19(vyy3001, vyy401, app(app(ty_@2, cca), ccb)) → new_esEs5(vyy3001, vyy401, cca, ccb)
new_primCmpInt(Neg(Zero), Neg(Zero)) → EQ
new_lt19(vyy651, vyy661, ty_Bool) → new_lt14(vyy651, vyy661)
new_esEs20(vyy3000, vyy400, app(ty_Maybe, ccg)) → new_esEs6(vyy3000, vyy400, ccg)
new_esEs28(vyy3000, vyy400, ty_Bool) → new_esEs11(vyy3000, vyy400)
new_esEs24(vyy3001, vyy401, ty_Int) → new_esEs10(vyy3001, vyy401)
new_lt7(vyy650, vyy660, ty_Integer) → new_lt5(vyy650, vyy660)
new_compare30(vyy650, vyy660, app(ty_[], beb)) → new_compare0(vyy650, vyy660, beb)
new_lt7(vyy650, vyy660, ty_@0) → new_lt4(vyy650, vyy660)
new_asAs(False, vyy91) → False
new_lt15(vyy650, vyy660, ed, ee) → new_esEs8(new_compare19(vyy650, vyy660, ed, ee), LT)
new_primMulInt(Neg(vyy30010), Pos(vyy4010)) → Neg(new_primMulNat0(vyy30010, vyy4010))
new_primMulInt(Pos(vyy30010), Neg(vyy4010)) → Neg(new_primMulNat0(vyy30010, vyy4010))
new_esEs6(Just(vyy3000), Just(vyy400), ty_Char) → new_esEs15(vyy3000, vyy400)
new_esEs26(vyy3002, vyy402, ty_Double) → new_esEs9(vyy3002, vyy402)
new_ltEs19(vyy652, vyy662, ty_Char) → new_ltEs11(vyy652, vyy662)
new_primMulNat0(Zero, Succ(vyy40100)) → Zero
new_primMulNat0(Succ(vyy300100), Zero) → Zero
new_esEs19(vyy3001, vyy401, ty_@0) → new_esEs12(vyy3001, vyy401)
new_esEs6(Just(vyy3000), Just(vyy400), ty_Double) → new_esEs9(vyy3000, vyy400)
new_esEs6(Just(vyy3000), Just(vyy400), app(ty_Maybe, beg)) → new_esEs6(vyy3000, vyy400, beg)
new_esEs21(vyy3000, vyy400, ty_Ordering) → new_esEs8(vyy3000, vyy400)
new_ltEs5(Left(vyy650), Left(vyy660), app(ty_[], bbf), bah) → new_ltEs15(vyy650, vyy660, bbf)
new_ltEs7(Just(vyy6500), Just(vyy6600), ty_Bool) → new_ltEs14(vyy6500, vyy6600)
new_esEs17(:(vyy3000, vyy3001), :(vyy400, vyy401), cdf) → new_asAs(new_esEs21(vyy3000, vyy400, cdf), new_esEs17(vyy3001, vyy401, cdf))
new_esEs20(vyy3000, vyy400, ty_Float) → new_esEs16(vyy3000, vyy400)
new_lt19(vyy651, vyy661, ty_Double) → new_lt8(vyy651, vyy661)
new_esEs23(vyy650, vyy660, app(ty_Maybe, ec)) → new_esEs6(vyy650, vyy660, ec)
new_lt19(vyy651, vyy661, app(ty_Maybe, db)) → new_lt12(vyy651, vyy661, db)
new_ltEs18(vyy651, vyy661, ty_Bool) → new_ltEs14(vyy651, vyy661)
new_esEs18(vyy650, vyy660, ty_Ordering) → new_esEs8(vyy650, vyy660)
new_esEs19(vyy3001, vyy401, ty_Double) → new_esEs9(vyy3001, vyy401)
new_esEs18(vyy650, vyy660, ty_Char) → new_esEs15(vyy650, vyy660)
new_esEs11(True, True) → True
new_ltEs18(vyy651, vyy661, app(ty_Ratio, bfg)) → new_ltEs17(vyy651, vyy661, bfg)
new_lt20(vyy650, vyy660, ty_Float) → new_lt13(vyy650, vyy660)
new_lt20(vyy650, vyy660, app(ty_Ratio, bga)) → new_lt18(vyy650, vyy660, bga)
new_esEs20(vyy3000, vyy400, ty_Integer) → new_esEs14(vyy3000, vyy400)
new_esEs23(vyy650, vyy660, ty_@0) → new_esEs12(vyy650, vyy660)
new_esEs24(vyy3001, vyy401, ty_Integer) → new_esEs14(vyy3001, vyy401)
new_esEs22(vyy651, vyy661, ty_Float) → new_esEs16(vyy651, vyy661)
new_ltEs4(vyy65, vyy66) → new_not(new_esEs8(new_compare6(vyy65, vyy66), GT))
new_esEs28(vyy3000, vyy400, app(ty_[], dbd)) → new_esEs17(vyy3000, vyy400, dbd)
new_ltEs7(Just(vyy6500), Nothing, ec) → False
new_lt20(vyy650, vyy660, ty_Integer) → new_lt5(vyy650, vyy660)
new_esEs28(vyy3000, vyy400, app(ty_Ratio, dae)) → new_esEs13(vyy3000, vyy400, dae)
new_esEs13(:%(vyy3000, vyy3001), :%(vyy400, vyy401), cfc) → new_asAs(new_esEs25(vyy3000, vyy400, cfc), new_esEs24(vyy3001, vyy401, cfc))
new_ltEs14(True, False) → False
new_ltEs7(Just(vyy6500), Just(vyy6600), ty_Char) → new_ltEs11(vyy6500, vyy6600)
new_esEs19(vyy3001, vyy401, ty_Char) → new_esEs15(vyy3001, vyy401)
new_ltEs13(vyy65, vyy66) → new_not(new_esEs8(new_compare15(vyy65, vyy66), GT))
new_esEs4(@3(vyy3000, vyy3001, vyy3002), @3(vyy400, vyy401, vyy402), cfd, cfe, cff) → new_asAs(new_esEs28(vyy3000, vyy400, cfd), new_asAs(new_esEs27(vyy3001, vyy401, cfe), new_esEs26(vyy3002, vyy402, cff)))
new_lt20(vyy650, vyy660, app(app(ty_Either, ed), ee)) → new_lt15(vyy650, vyy660, ed, ee)
new_ltEs19(vyy652, vyy662, app(ty_Maybe, bg)) → new_ltEs7(vyy652, vyy662, bg)
new_esEs6(Just(vyy3000), Just(vyy400), ty_Ordering) → new_esEs8(vyy3000, vyy400)
new_esEs6(Just(vyy3000), Just(vyy400), ty_Float) → new_esEs16(vyy3000, vyy400)
new_compare112(vyy650, vyy660, False) → GT
new_ltEs7(Just(vyy6500), Just(vyy6600), app(ty_Ratio, bff)) → new_ltEs17(vyy6500, vyy6600, bff)
new_compare30(vyy650, vyy660, ty_@0) → new_compare12(vyy650, vyy660)
new_esEs18(vyy650, vyy660, ty_Bool) → new_esEs11(vyy650, vyy660)
new_esEs9(Double(vyy3000, vyy3001), Double(vyy400, vyy401)) → new_esEs10(new_sr(vyy3000, vyy400), new_sr(vyy3001, vyy401))
new_esEs28(vyy3000, vyy400, ty_Int) → new_esEs10(vyy3000, vyy400)
new_lt19(vyy651, vyy661, ty_Char) → new_lt11(vyy651, vyy661)
new_compare17(vyy650, vyy660, True, ec) → LT
new_ltEs10(@2(vyy650, vyy651), @2(vyy660, vyy661), eg, ge) → new_pePe(new_lt7(vyy650, vyy660, eg), new_asAs(new_esEs18(vyy650, vyy660, eg), new_ltEs18(vyy651, vyy661, ge)))
new_primPlusNat0(Succ(vyy10400), Succ(vyy401000)) → Succ(Succ(new_primPlusNat0(vyy10400, vyy401000)))
new_lt13(vyy650, vyy660) → new_esEs8(new_compare14(vyy650, vyy660), LT)
new_lt7(vyy650, vyy660, ty_Char) → new_lt11(vyy650, vyy660)
new_compare15(Integer(vyy650), Integer(vyy660)) → new_primCmpInt(vyy650, vyy660)
new_compare111(vyy650, vyy660, True, ea, eb) → LT
new_compare0([], :(vyy660, vyy661), bda) → LT
new_esEs19(vyy3001, vyy401, ty_Integer) → new_esEs14(vyy3001, vyy401)
new_ltEs18(vyy651, vyy661, ty_Ordering) → new_ltEs16(vyy651, vyy661)
new_compare23(vyy650, vyy660, False, ed, ee) → new_compare10(vyy650, vyy660, new_ltEs5(vyy650, vyy660, ed, ee), ed, ee)
new_esEs27(vyy3001, vyy401, ty_Integer) → new_esEs14(vyy3001, vyy401)
new_asAs(True, vyy91) → vyy91
new_ltEs12(vyy65, vyy66) → new_not(new_esEs8(new_compare14(vyy65, vyy66), GT))
new_esEs27(vyy3001, vyy401, ty_Float) → new_esEs16(vyy3001, vyy401)
new_esEs20(vyy3000, vyy400, ty_Double) → new_esEs9(vyy3000, vyy400)
new_esEs18(vyy650, vyy660, ty_@0) → new_esEs12(vyy650, vyy660)
new_ltEs19(vyy652, vyy662, ty_Float) → new_ltEs12(vyy652, vyy662)
new_esEs18(vyy650, vyy660, app(ty_Ratio, bfh)) → new_esEs13(vyy650, vyy660, bfh)
new_esEs6(Just(vyy3000), Just(vyy400), app(app(ty_Either, bed), bee)) → new_esEs7(vyy3000, vyy400, bed, bee)
new_esEs27(vyy3001, vyy401, ty_Int) → new_esEs10(vyy3001, vyy401)
new_esEs7(Left(vyy3000), Left(vyy400), ty_Char, bgb) → new_esEs15(vyy3000, vyy400)
new_ltEs16(LT, LT) → True
new_esEs23(vyy650, vyy660, ty_Int) → new_esEs10(vyy650, vyy660)
new_esEs21(vyy3000, vyy400, ty_Int) → new_esEs10(vyy3000, vyy400)
new_compare27(vyy650, vyy660, True, df, dg, dh) → EQ
new_esEs17([], [], cdf) → True
new_esEs17([], :(vyy400, vyy401), cdf) → False
new_esEs17(:(vyy3000, vyy3001), [], cdf) → False
new_ltEs19(vyy652, vyy662, ty_Integer) → new_ltEs13(vyy652, vyy662)
new_esEs19(vyy3001, vyy401, ty_Ordering) → new_esEs8(vyy3001, vyy401)
new_esEs7(Left(vyy3000), Left(vyy400), ty_Bool, bgb) → new_esEs11(vyy3000, vyy400)
new_esEs28(vyy3000, vyy400, ty_Integer) → new_esEs14(vyy3000, vyy400)
new_esEs10(vyy300, vyy40) → new_primEqInt(vyy300, vyy40)
new_primCompAux00(vyy135, GT) → GT
new_ltEs19(vyy652, vyy662, ty_Int) → new_ltEs4(vyy652, vyy662)
new_esEs7(Left(vyy3000), Left(vyy400), ty_Float, bgb) → new_esEs16(vyy3000, vyy400)
new_ltEs5(Right(vyy650), Right(vyy660), bbg, ty_@0) → new_ltEs6(vyy650, vyy660)
new_esEs21(vyy3000, vyy400, ty_Float) → new_esEs16(vyy3000, vyy400)
new_lt5(vyy650, vyy660) → new_esEs8(new_compare15(vyy650, vyy660), LT)
new_primCmpInt(Pos(Zero), Pos(Zero)) → EQ
new_ltEs5(Right(vyy650), Right(vyy660), bbg, ty_Integer) → new_ltEs13(vyy650, vyy660)
new_lt20(vyy650, vyy660, app(ty_Maybe, ec)) → new_lt12(vyy650, vyy660, ec)
new_ltEs7(Just(vyy6500), Just(vyy6600), app(app(ty_@2, hg), hh)) → new_ltEs10(vyy6500, vyy6600, hg, hh)
new_primEqInt(Pos(Zero), Neg(Zero)) → True
new_primEqInt(Neg(Zero), Pos(Zero)) → True
new_esEs18(vyy650, vyy660, ty_Float) → new_esEs16(vyy650, vyy660)
new_compare30(vyy650, vyy660, ty_Float) → new_compare14(vyy650, vyy660)
new_primCmpInt(Neg(Succ(vyy6500)), Pos(vyy660)) → LT
new_not(True) → False

The set Q consists of the following terms:

new_esEs20(x0, x1, app(app(ty_@2, x2), x3))
new_ltEs19(x0, x1, ty_Char)
new_ltEs7(Nothing, Just(x0), x1)
new_lt19(x0, x1, ty_Ordering)
new_compare10(x0, x1, True, x2, x3)
new_compare30(x0, x1, app(app(ty_Either, x2), x3))
new_lt7(x0, x1, ty_Char)
new_esEs11(True, True)
new_esEs18(x0, x1, app(ty_[], x2))
new_esEs7(Right(x0), Right(x1), x2, ty_Int)
new_esEs7(Right(x0), Right(x1), x2, ty_Bool)
new_primEqInt(Neg(Zero), Pos(Succ(x0)))
new_primEqInt(Pos(Zero), Neg(Succ(x0)))
new_esEs22(x0, x1, app(ty_Ratio, x2))
new_esEs23(x0, x1, app(ty_Ratio, x2))
new_esEs18(x0, x1, ty_Float)
new_lt13(x0, x1)
new_ltEs18(x0, x1, app(ty_[], x2))
new_compare17(x0, x1, True, x2)
new_ltEs7(Just(x0), Just(x1), ty_Int)
new_esEs28(x0, x1, app(app(app(ty_@3, x2), x3), x4))
new_primCmpInt(Neg(Succ(x0)), Neg(x1))
new_compare111(x0, x1, False, x2, x3)
new_esEs26(x0, x1, ty_Integer)
new_compare112(x0, x1, True)
new_compare30(x0, x1, ty_Int)
new_esEs28(x0, x1, app(ty_Maybe, x2))
new_esEs26(x0, x1, app(app(ty_Either, x2), x3))
new_esEs7(Left(x0), Left(x1), app(app(app(ty_@3, x2), x3), x4), x5)
new_esEs27(x0, x1, app(ty_Maybe, x2))
new_esEs7(Right(x0), Right(x1), x2, ty_Integer)
new_esEs19(x0, x1, app(app(ty_Either, x2), x3))
new_lt7(x0, x1, ty_Int)
new_esEs23(x0, x1, app(app(ty_@2, x2), x3))
new_compare19(x0, x1, x2, x3)
new_primCmpNat0(Zero, Succ(x0))
new_ltEs10(@2(x0, x1), @2(x2, x3), x4, x5)
new_esEs28(x0, x1, ty_Int)
new_primPlusNat0(Succ(x0), Succ(x1))
new_esEs27(x0, x1, ty_Float)
new_esEs13(:%(x0, x1), :%(x2, x3), x4)
new_esEs18(x0, x1, ty_Char)
new_lt18(x0, x1, x2)
new_esEs18(x0, x1, ty_Double)
new_esEs26(x0, x1, ty_Char)
new_esEs25(x0, x1, ty_Integer)
new_primMulNat0(Zero, Succ(x0))
new_esEs21(x0, x1, app(app(ty_Either, x2), x3))
new_esEs7(Right(x0), Right(x1), x2, ty_Ordering)
new_esEs21(x0, x1, app(ty_[], x2))
new_ltEs14(True, False)
new_ltEs14(False, True)
new_esEs27(x0, x1, ty_Integer)
new_esEs11(False, True)
new_esEs11(True, False)
new_lt7(x0, x1, ty_Float)
new_esEs8(GT, GT)
new_ltEs5(Right(x0), Right(x1), x2, app(app(ty_Either, x3), x4))
new_compare30(x0, x1, app(ty_Ratio, x2))
new_ltEs19(x0, x1, ty_Float)
new_esEs24(x0, x1, ty_Integer)
new_lt11(x0, x1)
new_compare111(x0, x1, True, x2, x3)
new_compare0(:(x0, x1), :(x2, x3), x4)
new_esEs8(LT, LT)
new_esEs21(x0, x1, ty_Double)
new_esEs20(x0, x1, ty_Ordering)
new_esEs7(Right(x0), Right(x1), x2, app(app(ty_Either, x3), x4))
new_compare18(:%(x0, x1), :%(x2, x3), ty_Int)
new_ltEs7(Just(x0), Just(x1), ty_Char)
new_compare15(Integer(x0), Integer(x1))
new_ltEs18(x0, x1, ty_@0)
new_ltEs5(Right(x0), Right(x1), x2, ty_@0)
new_esEs19(x0, x1, ty_Ordering)
new_ltEs7(Just(x0), Just(x1), app(ty_[], x2))
new_esEs26(x0, x1, ty_Ordering)
new_esEs19(x0, x1, ty_Integer)
new_esEs7(Left(x0), Left(x1), ty_Integer, x2)
new_ltEs5(Left(x0), Left(x1), app(ty_Ratio, x2), x3)
new_compare113(x0, x1, False, x2, x3, x4)
new_compare9(x0, x1)
new_sr(x0, x1)
new_ltEs17(x0, x1, x2)
new_ltEs5(Left(x0), Left(x1), app(app(app(ty_@3, x2), x3), x4), x5)
new_esEs22(x0, x1, app(app(ty_Either, x2), x3))
new_esEs6(Just(x0), Just(x1), app(ty_Ratio, x2))
new_lt7(x0, x1, ty_Integer)
new_ltEs19(x0, x1, app(app(ty_Either, x2), x3))
new_ltEs7(Just(x0), Just(x1), app(ty_Ratio, x2))
new_esEs8(GT, LT)
new_esEs8(LT, GT)
new_esEs21(x0, x1, app(ty_Maybe, x2))
new_esEs6(Just(x0), Just(x1), app(app(ty_Either, x2), x3))
new_primEqNat0(Succ(x0), Succ(x1))
new_compare30(x0, x1, ty_Ordering)
new_esEs27(x0, x1, app(ty_Ratio, x2))
new_esEs28(x0, x1, app(app(ty_@2, x2), x3))
new_lt7(x0, x1, ty_Double)
new_esEs6(Nothing, Nothing, x0)
new_primPlusNat0(Succ(x0), Zero)
new_primEqNat0(Zero, Zero)
new_sr0(Integer(x0), Integer(x1))
new_lt19(x0, x1, ty_Float)
new_esEs21(x0, x1, ty_Ordering)
new_esEs21(x0, x1, ty_Int)
new_esEs17(:(x0, x1), :(x2, x3), x4)
new_primCompAux00(x0, GT)
new_esEs25(x0, x1, ty_Int)
new_esEs15(Char(x0), Char(x1))
new_ltEs9(@3(x0, x1, x2), @3(x3, x4, x5), x6, x7, x8)
new_ltEs5(Right(x0), Right(x1), x2, app(app(app(ty_@3, x3), x4), x5))
new_compare12(@0, @0)
new_ltEs5(Right(x0), Right(x1), x2, ty_Int)
new_lt7(x0, x1, ty_@0)
new_lt20(x0, x1, ty_Ordering)
new_esEs12(@0, @0)
new_esEs6(Just(x0), Just(x1), app(app(app(ty_@3, x2), x3), x4))
new_esEs23(x0, x1, app(app(app(ty_@3, x2), x3), x4))
new_primCmpInt(Neg(Zero), Neg(Succ(x0)))
new_esEs6(Just(x0), Just(x1), ty_@0)
new_ltEs5(Right(x0), Right(x1), x2, ty_Ordering)
new_primMulNat0(Zero, Zero)
new_esEs18(x0, x1, ty_Bool)
new_primCmpNat0(Succ(x0), Zero)
new_primMulInt(Pos(x0), Pos(x1))
new_esEs19(x0, x1, ty_Float)
new_esEs22(x0, x1, ty_Float)
new_esEs6(Just(x0), Nothing, x1)
new_ltEs5(Right(x0), Right(x1), x2, ty_Bool)
new_esEs20(x0, x1, app(ty_Ratio, x2))
new_primCmpInt(Neg(Succ(x0)), Pos(x1))
new_primCmpInt(Pos(Succ(x0)), Neg(x1))
new_primPlusNat1(Zero, x0)
new_compare29(x0, x1, True)
new_compare30(x0, x1, app(app(app(ty_@3, x2), x3), x4))
new_asAs(False, x0)
new_compare30(x0, x1, ty_@0)
new_ltEs19(x0, x1, ty_Int)
new_esEs7(Right(x0), Right(x1), x2, ty_Char)
new_compare30(x0, x1, app(ty_[], x2))
new_ltEs18(x0, x1, ty_Char)
new_compare24(x0, x1, True, x2)
new_lt19(x0, x1, app(app(app(ty_@3, x2), x3), x4))
new_ltEs18(x0, x1, ty_Float)
new_esEs7(Left(x0), Left(x1), app(ty_Ratio, x2), x3)
new_esEs20(x0, x1, app(ty_[], x2))
new_esEs18(x0, x1, app(ty_Ratio, x2))
new_ltEs11(x0, x1)
new_compare0([], [], x0)
new_lt5(x0, x1)
new_ltEs7(Just(x0), Nothing, x1)
new_esEs7(Left(x0), Left(x1), ty_Bool, x2)
new_compare0([], :(x0, x1), x2)
new_ltEs19(x0, x1, app(ty_Maybe, x2))
new_esEs6(Just(x0), Just(x1), app(app(ty_@2, x2), x3))
new_primMulNat0(Succ(x0), Succ(x1))
new_compare6(x0, x1)
new_primEqInt(Neg(Succ(x0)), Neg(Succ(x1)))
new_esEs20(x0, x1, ty_Double)
new_esEs27(x0, x1, app(app(app(ty_@3, x2), x3), x4))
new_esEs21(x0, x1, app(app(app(ty_@3, x2), x3), x4))
new_esEs7(Right(x0), Right(x1), x2, ty_Double)
new_esEs26(x0, x1, app(app(ty_@2, x2), x3))
new_esEs14(Integer(x0), Integer(x1))
new_lt15(x0, x1, x2, x3)
new_lt17(x0, x1)
new_ltEs7(Just(x0), Just(x1), app(app(app(ty_@3, x2), x3), x4))
new_esEs11(False, False)
new_ltEs5(Left(x0), Left(x1), app(ty_Maybe, x2), x3)
new_ltEs5(Right(x0), Right(x1), x2, ty_Integer)
new_lt20(x0, x1, app(ty_Ratio, x2))
new_ltEs5(Left(x0), Right(x1), x2, x3)
new_ltEs5(Right(x0), Left(x1), x2, x3)
new_esEs19(x0, x1, ty_Int)
new_compare23(x0, x1, False, x2, x3)
new_lt19(x0, x1, app(app(ty_Either, x2), x3))
new_esEs27(x0, x1, ty_Bool)
new_esEs22(x0, x1, ty_@0)
new_compare30(x0, x1, ty_Char)
new_esEs22(x0, x1, app(ty_[], x2))
new_ltEs19(x0, x1, app(ty_Ratio, x2))
new_lt20(x0, x1, ty_Int)
new_esEs7(Right(x0), Right(x1), x2, app(ty_Maybe, x3))
new_esEs9(Double(x0, x1), Double(x2, x3))
new_esEs23(x0, x1, ty_Bool)
new_esEs22(x0, x1, ty_Double)
new_esEs21(x0, x1, ty_Char)
new_primMulNat0(Succ(x0), Zero)
new_esEs23(x0, x1, app(ty_Maybe, x2))
new_primPlusNat0(Zero, Zero)
new_ltEs16(EQ, EQ)
new_compare23(x0, x1, True, x2, x3)
new_ltEs18(x0, x1, app(ty_Maybe, x2))
new_compare8(x0, x1, x2)
new_esEs17(:(x0, x1), [], x2)
new_ltEs19(x0, x1, ty_Integer)
new_lt14(x0, x1)
new_lt7(x0, x1, app(app(ty_Either, x2), x3))
new_esEs26(x0, x1, app(ty_Ratio, x2))
new_esEs7(Right(x0), Right(x1), x2, app(app(ty_@2, x3), x4))
new_compare28(x0, x1)
new_primCmpInt(Neg(Zero), Neg(Zero))
new_compare0(:(x0, x1), [], x2)
new_ltEs16(LT, LT)
new_ltEs18(x0, x1, ty_Int)
new_lt7(x0, x1, ty_Bool)
new_ltEs5(Left(x0), Left(x1), ty_Float, x2)
new_compare110(x0, x1, False)
new_primEqInt(Neg(Succ(x0)), Neg(Zero))
new_ltEs18(x0, x1, app(ty_Ratio, x2))
new_esEs22(x0, x1, app(app(ty_@2, x2), x3))
new_ltEs5(Left(x0), Left(x1), ty_Bool, x2)
new_esEs26(x0, x1, ty_Float)
new_primCmpNat0(Succ(x0), Succ(x1))
new_esEs18(x0, x1, app(app(app(ty_@3, x2), x3), x4))
new_esEs7(Left(x0), Left(x1), ty_Int, x2)
new_esEs20(x0, x1, ty_Bool)
new_esEs26(x0, x1, app(ty_[], x2))
new_lt16(x0, x1, x2)
new_ltEs5(Right(x0), Right(x1), x2, app(ty_Ratio, x3))
new_esEs27(x0, x1, ty_Int)
new_lt8(x0, x1)
new_compare30(x0, x1, ty_Bool)
new_ltEs19(x0, x1, ty_Double)
new_ltEs16(GT, LT)
new_ltEs16(LT, GT)
new_esEs23(x0, x1, ty_Float)
new_ltEs7(Just(x0), Just(x1), ty_@0)
new_ltEs18(x0, x1, ty_Integer)
new_esEs28(x0, x1, app(ty_Ratio, x2))
new_compare113(x0, x1, True, x2, x3, x4)
new_compare25(x0, x1, True)
new_esEs7(Left(x0), Left(x1), ty_Char, x2)
new_ltEs7(Just(x0), Just(x1), app(app(ty_Either, x2), x3))
new_ltEs5(Left(x0), Left(x1), ty_Ordering, x2)
new_esEs17([], :(x0, x1), x2)
new_lt19(x0, x1, app(app(ty_@2, x2), x3))
new_primEqInt(Pos(Zero), Neg(Zero))
new_primEqInt(Neg(Zero), Pos(Zero))
new_ltEs5(Left(x0), Left(x1), app(app(ty_@2, x2), x3), x4)
new_compare7(Double(x0, x1), Double(x2, x3))
new_esEs4(@3(x0, x1, x2), @3(x3, x4, x5), x6, x7, x8)
new_ltEs18(x0, x1, ty_Ordering)
new_esEs22(x0, x1, app(app(app(ty_@3, x2), x3), x4))
new_esEs27(x0, x1, ty_@0)
new_compare27(x0, x1, False, x2, x3, x4)
new_pePe(False, x0)
new_esEs20(x0, x1, app(app(app(ty_@3, x2), x3), x4))
new_primCmpInt(Pos(Zero), Pos(Succ(x0)))
new_ltEs7(Just(x0), Just(x1), ty_Double)
new_primPlusNat1(Succ(x0), x1)
new_primCmpInt(Pos(Zero), Pos(Zero))
new_esEs8(EQ, EQ)
new_esEs22(x0, x1, ty_Int)
new_esEs28(x0, x1, app(app(ty_Either, x2), x3))
new_compare24(x0, x1, False, x2)
new_esEs21(x0, x1, app(app(ty_@2, x2), x3))
new_ltEs19(x0, x1, ty_Ordering)
new_ltEs7(Just(x0), Just(x1), app(ty_Maybe, x2))
new_primEqInt(Neg(Zero), Neg(Zero))
new_primEqInt(Neg(Succ(x0)), Pos(x1))
new_primEqInt(Pos(Succ(x0)), Neg(x1))
new_lt7(x0, x1, ty_Ordering)
new_primMulInt(Pos(x0), Neg(x1))
new_primMulInt(Neg(x0), Pos(x1))
new_esEs28(x0, x1, ty_Integer)
new_esEs7(Right(x0), Right(x1), x2, ty_Float)
new_esEs18(x0, x1, ty_Int)
new_lt7(x0, x1, app(ty_Maybe, x2))
new_compare30(x0, x1, ty_Integer)
new_compare10(x0, x1, False, x2, x3)
new_ltEs5(Left(x0), Left(x1), ty_Char, x2)
new_esEs20(x0, x1, app(app(ty_Either, x2), x3))
new_esEs5(@2(x0, x1), @2(x2, x3), x4, x5)
new_esEs19(x0, x1, ty_Double)
new_lt9(x0, x1, x2, x3)
new_ltEs16(GT, GT)
new_ltEs5(Left(x0), Left(x1), ty_Int, x2)
new_ltEs7(Nothing, Nothing, x0)
new_esEs20(x0, x1, app(ty_Maybe, x2))
new_compare17(x0, x1, False, x2)
new_compare16(x0, x1, x2, x3, x4)
new_ltEs7(Just(x0), Just(x1), ty_Bool)
new_compare30(x0, x1, app(ty_Maybe, x2))
new_ltEs8(x0, x1)
new_compare30(x0, x1, ty_Float)
new_esEs28(x0, x1, ty_@0)
new_compare26(x0, x1, True, x2, x3)
new_esEs22(x0, x1, ty_Bool)
new_esEs18(x0, x1, app(app(ty_Either, x2), x3))
new_compare29(x0, x1, False)
new_esEs10(x0, x1)
new_esEs20(x0, x1, ty_Char)
new_esEs19(x0, x1, app(ty_Ratio, x2))
new_esEs6(Just(x0), Just(x1), ty_Int)
new_lt6(x0, x1, x2, x3, x4)
new_primEqNat0(Zero, Succ(x0))
new_compare18(:%(x0, x1), :%(x2, x3), ty_Integer)
new_esEs20(x0, x1, ty_Int)
new_esEs21(x0, x1, ty_Float)
new_esEs7(Right(x0), Right(x1), x2, app(ty_Ratio, x3))
new_esEs7(Left(x0), Left(x1), ty_Double, x2)
new_ltEs7(Just(x0), Just(x1), app(app(ty_@2, x2), x3))
new_esEs8(EQ, GT)
new_esEs8(GT, EQ)
new_ltEs5(Left(x0), Left(x1), ty_@0, x2)
new_esEs17([], [], x0)
new_esEs28(x0, x1, app(ty_[], x2))
new_ltEs18(x0, x1, ty_Double)
new_ltEs19(x0, x1, ty_Bool)
new_ltEs5(Right(x0), Right(x1), x2, ty_Float)
new_compare30(x0, x1, ty_Double)
new_ltEs12(x0, x1)
new_esEs23(x0, x1, ty_Integer)
new_esEs22(x0, x1, ty_Char)
new_esEs28(x0, x1, ty_Bool)
new_ltEs19(x0, x1, app(ty_[], x2))
new_compare27(x0, x1, True, x2, x3, x4)
new_primCmpNat0(Zero, Zero)
new_esEs7(Right(x0), Left(x1), x2, x3)
new_esEs7(Left(x0), Right(x1), x2, x3)
new_esEs21(x0, x1, ty_Bool)
new_ltEs5(Left(x0), Left(x1), ty_Double, x2)
new_esEs22(x0, x1, ty_Ordering)
new_esEs7(Left(x0), Left(x1), app(ty_[], x2), x3)
new_lt7(x0, x1, app(ty_Ratio, x2))
new_lt20(x0, x1, app(app(ty_@2, x2), x3))
new_esEs27(x0, x1, app(ty_[], x2))
new_lt19(x0, x1, ty_Integer)
new_ltEs19(x0, x1, app(app(app(ty_@3, x2), x3), x4))
new_lt20(x0, x1, app(app(app(ty_@3, x2), x3), x4))
new_primEqInt(Neg(Zero), Neg(Succ(x0)))
new_primEqInt(Pos(Succ(x0)), Pos(Succ(x1)))
new_esEs21(x0, x1, ty_@0)
new_lt20(x0, x1, ty_@0)
new_primEqInt(Pos(Succ(x0)), Pos(Zero))
new_esEs19(x0, x1, app(ty_Maybe, x2))
new_esEs27(x0, x1, ty_Double)
new_esEs23(x0, x1, ty_Int)
new_esEs23(x0, x1, ty_Char)
new_lt20(x0, x1, ty_Char)
new_compare30(x0, x1, app(app(ty_@2, x2), x3))
new_esEs22(x0, x1, ty_Integer)
new_lt20(x0, x1, app(ty_[], x2))
new_esEs23(x0, x1, ty_Ordering)
new_asAs(True, x0)
new_esEs26(x0, x1, ty_@0)
new_lt19(x0, x1, ty_Char)
new_esEs18(x0, x1, app(app(ty_@2, x2), x3))
new_esEs27(x0, x1, app(app(ty_Either, x2), x3))
new_primCompAux00(x0, EQ)
new_ltEs14(True, True)
new_lt7(x0, x1, app(app(app(ty_@3, x2), x3), x4))
new_esEs7(Left(x0), Left(x1), app(ty_Maybe, x2), x3)
new_ltEs14(False, False)
new_esEs7(Left(x0), Left(x1), ty_Float, x2)
new_esEs19(x0, x1, app(app(app(ty_@3, x2), x3), x4))
new_esEs19(x0, x1, ty_Char)
new_lt20(x0, x1, ty_Double)
new_primPlusNat0(Zero, Succ(x0))
new_esEs18(x0, x1, ty_@0)
new_lt19(x0, x1, app(ty_Ratio, x2))
new_lt19(x0, x1, ty_@0)
new_esEs18(x0, x1, ty_Ordering)
new_primCompAux0(x0, x1, x2, x3)
new_esEs26(x0, x1, ty_Bool)
new_ltEs5(Right(x0), Right(x1), x2, ty_Double)
new_ltEs7(Just(x0), Just(x1), ty_Ordering)
new_esEs6(Just(x0), Just(x1), ty_Double)
new_not(True)
new_ltEs5(Left(x0), Left(x1), app(app(ty_Either, x2), x3), x4)
new_lt10(x0, x1)
new_esEs20(x0, x1, ty_Integer)
new_esEs16(Float(x0, x1), Float(x2, x3))
new_esEs22(x0, x1, app(ty_Maybe, x2))
new_esEs6(Just(x0), Just(x1), ty_Integer)
new_ltEs16(GT, EQ)
new_esEs26(x0, x1, app(ty_Maybe, x2))
new_ltEs16(EQ, GT)
new_primCmpInt(Neg(Zero), Pos(Succ(x0)))
new_primCmpInt(Pos(Zero), Neg(Succ(x0)))
new_ltEs7(Just(x0), Just(x1), ty_Float)
new_esEs28(x0, x1, ty_Float)
new_esEs28(x0, x1, ty_Char)
new_esEs7(Left(x0), Left(x1), ty_Ordering, x2)
new_lt19(x0, x1, app(ty_Maybe, x2))
new_esEs23(x0, x1, ty_@0)
new_lt20(x0, x1, ty_Bool)
new_pePe(True, x0)
new_primCmpInt(Pos(Zero), Neg(Zero))
new_primCmpInt(Neg(Zero), Pos(Zero))
new_not(False)
new_compare110(x0, x1, True)
new_ltEs16(LT, EQ)
new_ltEs16(EQ, LT)
new_ltEs19(x0, x1, ty_@0)
new_ltEs13(x0, x1)
new_esEs24(x0, x1, ty_Int)
new_ltEs5(Right(x0), Right(x1), x2, app(app(ty_@2, x3), x4))
new_esEs23(x0, x1, ty_Double)
new_lt7(x0, x1, app(ty_[], x2))
new_esEs7(Left(x0), Left(x1), app(app(ty_Either, x2), x3), x4)
new_ltEs7(Just(x0), Just(x1), ty_Integer)
new_esEs28(x0, x1, ty_Ordering)
new_esEs6(Just(x0), Just(x1), app(ty_[], x2))
new_esEs6(Just(x0), Just(x1), ty_Char)
new_primEqInt(Pos(Zero), Pos(Succ(x0)))
new_ltEs4(x0, x1)
new_ltEs18(x0, x1, app(app(ty_Either, x2), x3))
new_esEs26(x0, x1, ty_Int)
new_esEs19(x0, x1, app(app(ty_@2, x2), x3))
new_esEs27(x0, x1, ty_Char)
new_lt20(x0, x1, app(app(ty_Either, x2), x3))
new_esEs7(Left(x0), Left(x1), ty_@0, x2)
new_esEs19(x0, x1, ty_Bool)
new_primCmpInt(Pos(Succ(x0)), Pos(x1))
new_lt12(x0, x1, x2)
new_ltEs19(x0, x1, app(app(ty_@2, x2), x3))
new_primCompAux00(x0, LT)
new_lt4(x0, x1)
new_esEs8(LT, EQ)
new_esEs8(EQ, LT)
new_esEs7(Left(x0), Left(x1), app(app(ty_@2, x2), x3), x4)
new_ltEs18(x0, x1, app(app(app(ty_@3, x2), x3), x4))
new_ltEs18(x0, x1, ty_Bool)
new_lt19(x0, x1, ty_Bool)
new_esEs7(Right(x0), Right(x1), x2, app(app(app(ty_@3, x3), x4), x5))
new_esEs26(x0, x1, ty_Double)
new_esEs23(x0, x1, app(app(ty_Either, x2), x3))
new_compare13(Char(x0), Char(x1))
new_esEs21(x0, x1, app(ty_Ratio, x2))
new_ltEs18(x0, x1, app(app(ty_@2, x2), x3))
new_esEs27(x0, x1, app(app(ty_@2, x2), x3))
new_lt7(x0, x1, app(app(ty_@2, x2), x3))
new_esEs18(x0, x1, ty_Integer)
new_esEs6(Just(x0), Just(x1), ty_Float)
new_esEs7(Right(x0), Right(x1), x2, app(ty_[], x3))
new_compare26(x0, x1, False, x2, x3)
new_compare25(x0, x1, False)
new_esEs19(x0, x1, app(ty_[], x2))
new_ltEs5(Right(x0), Right(x1), x2, app(ty_Maybe, x3))
new_primEqNat0(Succ(x0), Zero)
new_lt19(x0, x1, ty_Double)
new_esEs23(x0, x1, app(ty_[], x2))
new_esEs7(Right(x0), Right(x1), x2, ty_@0)
new_esEs6(Nothing, Just(x0), x1)
new_esEs27(x0, x1, ty_Ordering)
new_primEqInt(Pos(Zero), Pos(Zero))
new_esEs6(Just(x0), Just(x1), ty_Bool)
new_compare14(Float(x0, x1), Float(x2, x3))
new_ltEs5(Left(x0), Left(x1), ty_Integer, x2)
new_ltEs5(Right(x0), Right(x1), x2, ty_Char)
new_esEs26(x0, x1, app(app(app(ty_@3, x2), x3), x4))
new_esEs19(x0, x1, ty_@0)
new_esEs20(x0, x1, ty_Float)
new_lt19(x0, x1, app(ty_[], x2))
new_lt19(x0, x1, ty_Int)
new_ltEs15(x0, x1, x2)
new_esEs18(x0, x1, app(ty_Maybe, x2))
new_lt20(x0, x1, ty_Integer)
new_lt20(x0, x1, app(ty_Maybe, x2))
new_ltEs5(Left(x0), Left(x1), app(ty_[], x2), x3)
new_primMulInt(Neg(x0), Neg(x1))
new_esEs6(Just(x0), Just(x1), ty_Ordering)
new_esEs21(x0, x1, ty_Integer)
new_ltEs6(x0, x1)
new_compare112(x0, x1, False)
new_esEs28(x0, x1, ty_Double)
new_compare11(x0, x1, x2, x3)
new_ltEs5(Right(x0), Right(x1), x2, app(ty_[], x3))
new_esEs6(Just(x0), Just(x1), app(ty_Maybe, x2))
new_lt20(x0, x1, ty_Float)
new_esEs20(x0, x1, ty_@0)

We have to consider all minimal (P,Q,R)-chains.
By using the subterm criterion [20] together with the size-change analysis [32] we have proven that there are no infinite chains for this DP problem.

From the DPs we obtained the following set of size-change graphs:



↳ HASKELL
  ↳ LR
    ↳ HASKELL
      ↳ CR
        ↳ HASKELL
          ↳ IFR
            ↳ HASKELL
              ↳ BR
                ↳ HASKELL
                  ↳ COR
                    ↳ HASKELL
                      ↳ LetRed
                        ↳ HASKELL
                          ↳ NumRed
                            ↳ HASKELL
                              ↳ Narrow
                                ↳ AND
                                  ↳ QDP
                                  ↳ QDP
                                  ↳ QDP
                                  ↳ QDP
                                  ↳ QDP
                                  ↳ QDP
QDP
                                    ↳ QDPSizeChangeProof
                                  ↳ QDP

Q DP problem:
The TRS P consists of the following rules:

new_foldFM_GE2(vyy330, vyy331, vyy71, vyy40, vyy3330, vyy3331, vyy3332, vyy3333, vyy3334, h, ba) → new_foldFM_GE1(new_keysFM_GE0(vyy330, vyy331, vyy71, h, ba), vyy40, vyy3330, vyy3331, vyy3332, vyy3333, vyy3334, new_gtEs(vyy3330, vyy40, h), h, ba)
new_foldFM_GE(vyy50, vyy40, Branch(vyy3340, vyy3341, vyy3342, vyy3343, vyy3344), h, ba) → new_foldFM_GE1(vyy50, vyy40, vyy3340, vyy3341, vyy3342, vyy3343, vyy3344, new_gtEs(vyy3340, vyy40, h), h, ba)
new_foldFM_GE1(vyy50, vyy40, vyy330, vyy331, vyy332, Branch(vyy3330, vyy3331, vyy3332, vyy3333, vyy3334), vyy334, True, h, ba) → new_foldFM_GE2(vyy330, vyy331, new_foldFM_GE0(vyy50, vyy40, vyy334, h, ba), vyy40, vyy3330, vyy3331, vyy3332, vyy3333, vyy3334, h, ba)
new_foldFM_GE1(vyy50, vyy40, vyy330, vyy331, vyy332, Branch(vyy3330, vyy3331, vyy3332, vyy3333, vyy3334), vyy334, True, h, ba) → new_foldFM_GE(vyy50, vyy40, vyy334, h, ba)
new_foldFM_GE1(vyy50, vyy40, vyy330, vyy331, vyy332, vyy333, Branch(vyy3340, vyy3341, vyy3342, vyy3343, vyy3344), False, h, ba) → new_foldFM_GE1(vyy50, vyy40, vyy3340, vyy3341, vyy3342, vyy3343, vyy3344, new_gtEs(vyy3340, vyy40, h), h, ba)
new_foldFM_GE1(vyy50, vyy40, vyy330, vyy331, vyy332, EmptyFM, vyy334, True, h, ba) → new_foldFM_GE(vyy50, vyy40, vyy334, h, ba)

The TRS R consists of the following rules:

new_lt7(vyy650, vyy660, ty_Int) → new_lt10(vyy650, vyy660)
new_esEs23(vyy650, vyy660, app(app(ty_Either, bb), bc)) → new_esEs7(vyy650, vyy660, bb, bc)
new_lt7(vyy650, vyy660, ty_Ordering) → new_lt17(vyy650, vyy660)
new_esEs6(Just(vyy3000), Just(vyy400), app(app(ty_@2, ce), cf)) → new_esEs5(vyy3000, vyy400, ce, cf)
new_esEs7(Left(vyy3000), Left(vyy400), app(app(ty_Either, bab), bac), baa) → new_esEs7(vyy3000, vyy400, bab, bac)
new_ltEs19(vyy652, vyy662, ty_Ordering) → new_ltEs16(vyy652, vyy662)
new_ltEs16(GT, GT) → True
new_compare14(Float(vyy650, vyy651), Float(vyy660, vyy661)) → new_compare6(new_sr(vyy650, vyy660), new_sr(vyy651, vyy661))
new_lt7(vyy650, vyy660, app(ty_Maybe, hb)) → new_lt12(vyy650, vyy660, hb)
new_lt7(vyy650, vyy660, ty_Float) → new_lt13(vyy650, vyy660)
new_esEs16(Float(vyy3000, vyy3001), Float(vyy400, vyy401)) → new_esEs10(new_sr(vyy3000, vyy400), new_sr(vyy3001, vyy401))
new_ltEs5(Right(vyy650), Right(vyy660), dag, ty_Float) → new_ltEs12(vyy650, vyy660)
new_lt20(vyy650, vyy660, ty_Int) → new_lt10(vyy650, vyy660)
new_ltEs18(vyy651, vyy661, app(ty_[], gc)) → new_ltEs15(vyy651, vyy661, gc)
new_compare11(vyy650, vyy660, da, db) → new_compare26(vyy650, vyy660, new_esEs5(vyy650, vyy660, da, db), da, db)
new_esEs7(Right(vyy3000), Right(vyy400), bbd, app(ty_[], bcf)) → new_esEs17(vyy3000, vyy400, bcf)
new_lt20(vyy650, vyy660, ty_Char) → new_lt11(vyy650, vyy660)
new_compare10(vyy650, vyy660, True, bb, bc) → LT
new_lt18(vyy650, vyy660, hh) → new_esEs8(new_compare18(vyy650, vyy660, hh), LT)
new_lt19(vyy651, vyy661, ty_Integer) → new_lt5(vyy651, vyy661)
new_esEs18(vyy650, vyy660, app(ty_[], he)) → new_esEs17(vyy650, vyy660, he)
new_ltEs16(LT, GT) → True
new_foldFM_GE10(vyy50, vyy40, vyy330, vyy331, vyy332, EmptyFM, vyy334, True, h, ba) → new_foldFM_GE3(vyy330, vyy331, new_foldFM_GE0(vyy50, vyy40, vyy334, h, ba), vyy40, h, ba)
new_compare19(vyy650, vyy660, bb, bc) → new_compare23(vyy650, vyy660, new_esEs7(vyy650, vyy660, bb, bc), bb, bc)
new_ltEs5(Right(vyy650), Right(vyy660), dag, ty_Bool) → new_ltEs14(vyy650, vyy660)
new_esEs23(vyy650, vyy660, app(ty_[], bgh)) → new_esEs17(vyy650, vyy660, bgh)
new_esEs23(vyy650, vyy660, ty_Float) → new_esEs16(vyy650, vyy660)
new_primMulNat0(Zero, Zero) → Zero
new_esEs6(Just(vyy3000), Just(vyy400), app(ty_Ratio, bh)) → new_esEs13(vyy3000, vyy400, bh)
new_esEs27(vyy3001, vyy401, app(app(app(ty_@3, ceb), cec), ced)) → new_esEs4(vyy3001, vyy401, ceb, cec, ced)
new_compare29(vyy650, vyy660, True) → EQ
new_esEs23(vyy650, vyy660, app(ty_Ratio, hh)) → new_esEs13(vyy650, vyy660, hh)
new_esEs18(vyy650, vyy660, ty_Double) → new_esEs9(vyy650, vyy660)
new_lt19(vyy651, vyy661, app(app(ty_Either, cbd), cbe)) → new_lt15(vyy651, vyy661, cbd, cbe)
new_esEs23(vyy650, vyy660, ty_Double) → new_esEs9(vyy650, vyy660)
new_esEs7(Right(vyy3000), Right(vyy400), bbd, ty_Ordering) → new_esEs8(vyy3000, vyy400)
new_esEs19(vyy3001, vyy401, ty_Int) → new_esEs10(vyy3001, vyy401)
new_ltEs14(False, True) → True
new_esEs26(vyy3002, vyy402, ty_Char) → new_esEs15(vyy3002, vyy402)
new_lt19(vyy651, vyy661, ty_Ordering) → new_lt17(vyy651, vyy661)
new_esEs23(vyy650, vyy660, ty_Char) → new_esEs15(vyy650, vyy660)
new_lt4(vyy650, vyy660) → new_esEs8(new_compare12(vyy650, vyy660), LT)
new_esEs6(Just(vyy3000), Just(vyy400), ty_Bool) → new_esEs11(vyy3000, vyy400)
new_esEs27(vyy3001, vyy401, ty_Char) → new_esEs15(vyy3001, vyy401)
new_ltEs8(vyy65, vyy66) → new_not(new_esEs8(new_compare7(vyy65, vyy66), GT))
new_esEs20(vyy3000, vyy400, app(ty_Ratio, bee)) → new_esEs13(vyy3000, vyy400, bee)
new_esEs7(Left(vyy3000), Left(vyy400), ty_Integer, baa) → new_esEs14(vyy3000, vyy400)
new_ltEs5(Left(vyy650), Right(vyy660), dag, chd) → True
new_ltEs5(Right(vyy650), Right(vyy660), dag, app(ty_Ratio, dca)) → new_ltEs17(vyy650, vyy660, dca)
new_lt19(vyy651, vyy661, ty_Float) → new_lt13(vyy651, vyy661)
new_esEs22(vyy651, vyy661, app(app(ty_@2, cba), cbb)) → new_esEs5(vyy651, vyy661, cba, cbb)
new_compare0(:(vyy650, vyy651), :(vyy660, vyy661), hg) → new_primCompAux0(vyy650, vyy660, new_compare0(vyy651, vyy661, hg), hg)
new_esEs22(vyy651, vyy661, app(ty_Maybe, cbc)) → new_esEs6(vyy651, vyy661, cbc)
new_lt20(vyy650, vyy660, app(app(ty_@2, da), db)) → new_lt9(vyy650, vyy660, da, db)
new_esEs27(vyy3001, vyy401, app(ty_Maybe, cea)) → new_esEs6(vyy3001, vyy401, cea)
new_ltEs18(vyy651, vyy661, ty_Int) → new_ltEs4(vyy651, vyy661)
new_ltEs5(Right(vyy650), Right(vyy660), dag, app(app(ty_Either, dbf), dbg)) → new_ltEs5(vyy650, vyy660, dbf, dbg)
new_esEs12(@0, @0) → True
new_esEs28(vyy3000, vyy400, ty_@0) → new_esEs12(vyy3000, vyy400)
new_compare30(vyy650, vyy660, app(app(ty_Either, cgh), cha)) → new_compare19(vyy650, vyy660, cgh, cha)
new_esEs26(vyy3002, vyy402, ty_Integer) → new_esEs14(vyy3002, vyy402)
new_esEs18(vyy650, vyy660, app(app(app(ty_@3, ge), gf), gg)) → new_esEs4(vyy650, vyy660, ge, gf, gg)
new_compare17(vyy650, vyy660, False, bd) → GT
new_esEs22(vyy651, vyy661, app(app(ty_Either, cbd), cbe)) → new_esEs7(vyy651, vyy661, cbd, cbe)
new_ltEs5(Right(vyy650), Left(vyy660), dag, chd) → False
new_esEs7(Right(vyy3000), Right(vyy400), bbd, ty_Integer) → new_esEs14(vyy3000, vyy400)
new_lt20(vyy650, vyy660, ty_Bool) → new_lt14(vyy650, vyy660)
new_lt7(vyy650, vyy660, ty_Bool) → new_lt14(vyy650, vyy660)
new_ltEs5(Left(vyy650), Left(vyy660), app(ty_Ratio, daf), chd) → new_ltEs17(vyy650, vyy660, daf)
new_esEs7(Right(vyy3000), Right(vyy400), bbd, app(ty_Maybe, bbh)) → new_esEs6(vyy3000, vyy400, bbh)
new_pePe(False, vyy125) → vyy125
new_ltEs5(Right(vyy650), Right(vyy660), dag, ty_Char) → new_ltEs11(vyy650, vyy660)
new_esEs7(Left(vyy3000), Right(vyy400), bbd, baa) → False
new_esEs7(Right(vyy3000), Left(vyy400), bbd, baa) → False
new_esEs27(vyy3001, vyy401, app(app(ty_Either, cdf), cdg)) → new_esEs7(vyy3001, vyy401, cdf, cdg)
new_ltEs7(Just(vyy6500), Just(vyy6600), ty_Integer) → new_ltEs13(vyy6500, vyy6600)
new_compare30(vyy650, vyy660, ty_Integer) → new_compare15(vyy650, vyy660)
new_ltEs5(Right(vyy650), Right(vyy660), dag, ty_Double) → new_ltEs8(vyy650, vyy660)
new_lt19(vyy651, vyy661, app(ty_[], cbf)) → new_lt16(vyy651, vyy661, cbf)
new_esEs19(vyy3001, vyy401, app(ty_Maybe, bdd)) → new_esEs6(vyy3001, vyy401, bdd)
new_ltEs7(Just(vyy6500), Just(vyy6600), ty_Int) → new_ltEs4(vyy6500, vyy6600)
new_ltEs16(EQ, GT) → True
new_esEs28(vyy3000, vyy400, app(app(app(ty_@3, cfd), cfe), cff)) → new_esEs4(vyy3000, vyy400, cfd, cfe, cff)
new_ltEs5(Left(vyy650), Left(vyy660), ty_Float, chd) → new_ltEs12(vyy650, vyy660)
new_ltEs5(Right(vyy650), Right(vyy660), dag, ty_Ordering) → new_ltEs16(vyy650, vyy660)
new_esEs19(vyy3001, vyy401, ty_Float) → new_esEs16(vyy3001, vyy401)
new_lt20(vyy650, vyy660, ty_Ordering) → new_lt17(vyy650, vyy660)
new_esEs27(vyy3001, vyy401, app(ty_[], ceg)) → new_esEs17(vyy3001, vyy401, ceg)
new_esEs22(vyy651, vyy661, ty_Ordering) → new_esEs8(vyy651, vyy661)
new_esEs7(Left(vyy3000), Left(vyy400), ty_Double, baa) → new_esEs9(vyy3000, vyy400)
new_esEs19(vyy3001, vyy401, app(app(ty_Either, bda), bdb)) → new_esEs7(vyy3001, vyy401, bda, bdb)
new_ltEs5(Left(vyy650), Left(vyy660), ty_Integer, chd) → new_ltEs13(vyy650, vyy660)
new_esEs20(vyy3000, vyy400, app(app(ty_@2, bfb), bfc)) → new_esEs5(vyy3000, vyy400, bfb, bfc)
new_esEs7(Right(vyy3000), Right(vyy400), bbd, ty_Double) → new_esEs9(vyy3000, vyy400)
new_esEs14(Integer(vyy3000), Integer(vyy400)) → new_primEqInt(vyy3000, vyy400)
new_lt7(vyy650, vyy660, app(app(ty_@2, gh), ha)) → new_lt9(vyy650, vyy660, gh, ha)
new_ltEs18(vyy651, vyy661, ty_Char) → new_ltEs11(vyy651, vyy661)
new_esEs7(Right(vyy3000), Right(vyy400), bbd, app(app(ty_@2, bcd), bce)) → new_esEs5(vyy3000, vyy400, bcd, bce)
new_primCmpNat0(Zero, Succ(vyy6600)) → LT
new_compare7(Double(vyy650, vyy651), Double(vyy660, vyy661)) → new_compare6(new_sr(vyy650, vyy660), new_sr(vyy651, vyy661))
new_ltEs18(vyy651, vyy661, ty_@0) → new_ltEs6(vyy651, vyy661)
new_esEs26(vyy3002, vyy402, ty_Bool) → new_esEs11(vyy3002, vyy402)
new_esEs8(LT, LT) → True
new_esEs19(vyy3001, vyy401, app(ty_[], beb)) → new_esEs17(vyy3001, vyy401, beb)
new_lt9(vyy650, vyy660, da, db) → new_esEs8(new_compare11(vyy650, vyy660, da, db), LT)
new_lt7(vyy650, vyy660, app(ty_Ratio, hf)) → new_lt18(vyy650, vyy660, hf)
new_esEs21(vyy3000, vyy400, app(ty_Ratio, bfh)) → new_esEs13(vyy3000, vyy400, bfh)
new_esEs20(vyy3000, vyy400, ty_Bool) → new_esEs11(vyy3000, vyy400)
new_esEs7(Right(vyy3000), Right(vyy400), bbd, ty_Float) → new_esEs16(vyy3000, vyy400)
new_pePe(True, vyy125) → True
new_compare0([], [], hg) → EQ
new_primEqNat0(Zero, Zero) → True
new_lt6(vyy650, vyy660, dc, dd, de) → new_esEs8(new_compare16(vyy650, vyy660, dc, dd, de), LT)
new_esEs19(vyy3001, vyy401, app(ty_Ratio, bdc)) → new_esEs13(vyy3001, vyy401, bdc)
new_esEs7(Left(vyy3000), Left(vyy400), app(app(ty_@2, bba), bbb), baa) → new_esEs5(vyy3000, vyy400, bba, bbb)
new_esEs26(vyy3002, vyy402, app(ty_Maybe, ccg)) → new_esEs6(vyy3002, vyy402, ccg)
new_primMulNat0(Succ(vyy300100), Succ(vyy40100)) → new_primPlusNat1(new_primMulNat0(vyy300100, Succ(vyy40100)), vyy40100)
new_compare111(vyy650, vyy660, False, da, db) → GT
new_esEs26(vyy3002, vyy402, app(ty_Ratio, ccf)) → new_esEs13(vyy3002, vyy402, ccf)
new_lt7(vyy650, vyy660, app(ty_[], he)) → new_lt16(vyy650, vyy660, he)
new_esEs6(Just(vyy3000), Just(vyy400), ty_@0) → new_esEs12(vyy3000, vyy400)
new_esEs27(vyy3001, vyy401, app(ty_Ratio, cdh)) → new_esEs13(vyy3001, vyy401, cdh)
new_ltEs7(Just(vyy6500), Just(vyy6600), ty_Float) → new_ltEs12(vyy6500, vyy6600)
new_esEs7(Left(vyy3000), Left(vyy400), ty_Ordering, baa) → new_esEs8(vyy3000, vyy400)
new_esEs5(@2(vyy3000, vyy3001), @2(vyy400, vyy401), bcg, bch) → new_asAs(new_esEs20(vyy3000, vyy400, bcg), new_esEs19(vyy3001, vyy401, bch))
new_ltEs16(EQ, LT) → False
new_ltEs6(vyy65, vyy66) → new_not(new_esEs8(new_compare12(vyy65, vyy66), GT))
new_esEs18(vyy650, vyy660, app(app(ty_@2, gh), ha)) → new_esEs5(vyy650, vyy660, gh, ha)
new_compare25(vyy650, vyy660, False) → new_compare110(vyy650, vyy660, new_ltEs14(vyy650, vyy660))
new_esEs15(Char(vyy3000), Char(vyy400)) → new_primEqNat0(vyy3000, vyy400)
new_ltEs16(GT, EQ) → False
new_sr(vyy3001, vyy401) → new_primMulInt(vyy3001, vyy401)
new_esEs20(vyy3000, vyy400, ty_Char) → new_esEs15(vyy3000, vyy400)
new_keysFM_GE0(vyy330, vyy331, vyy68, h, ba) → :(vyy330, vyy68)
new_esEs22(vyy651, vyy661, ty_Double) → new_esEs9(vyy651, vyy661)
new_gtEs(vyy3330, vyy40, h) → new_not(new_esEs8(new_compare24(vyy3330, Just(vyy40), new_esEs6(vyy3330, Just(vyy40), h), h), LT))
new_esEs26(vyy3002, vyy402, ty_Ordering) → new_esEs8(vyy3002, vyy402)
new_ltEs18(vyy651, vyy661, app(app(app(ty_@3, fb), fc), fd)) → new_ltEs9(vyy651, vyy661, fb, fc, fd)
new_esEs8(GT, GT) → True
new_lt19(vyy651, vyy661, ty_@0) → new_lt4(vyy651, vyy661)
new_ltEs7(Just(vyy6500), Just(vyy6600), app(app(app(ty_@3, df), dg), dh)) → new_ltEs9(vyy6500, vyy6600, df, dg, dh)
new_esEs7(Left(vyy3000), Left(vyy400), ty_Int, baa) → new_esEs10(vyy3000, vyy400)
new_esEs7(Right(vyy3000), Right(vyy400), bbd, app(app(ty_Either, bbe), bbf)) → new_esEs7(vyy3000, vyy400, bbe, bbf)
new_esEs26(vyy3002, vyy402, app(app(app(ty_@3, cch), cda), cdb)) → new_esEs4(vyy3002, vyy402, cch, cda, cdb)
new_ltEs5(Left(vyy650), Left(vyy660), ty_@0, chd) → new_ltEs6(vyy650, vyy660)
new_esEs8(GT, LT) → False
new_esEs8(LT, GT) → False
new_ltEs18(vyy651, vyy661, app(app(ty_Either, ga), gb)) → new_ltEs5(vyy651, vyy661, ga, gb)
new_compare30(vyy650, vyy660, ty_Char) → new_compare13(vyy650, vyy660)
new_lt16(vyy650, vyy660, bgh) → new_esEs8(new_compare0(vyy650, vyy660, bgh), LT)
new_esEs28(vyy3000, vyy400, ty_Float) → new_esEs16(vyy3000, vyy400)
new_esEs7(Right(vyy3000), Right(vyy400), bbd, ty_@0) → new_esEs12(vyy3000, vyy400)
new_primEqInt(Neg(Succ(vyy30000)), Neg(Succ(vyy4000))) → new_primEqNat0(vyy30000, vyy4000)
new_compare25(vyy650, vyy660, True) → EQ
new_lt17(vyy650, vyy660) → new_esEs8(new_compare28(vyy650, vyy660), LT)
new_compare30(vyy650, vyy660, app(ty_Maybe, cgg)) → new_compare8(vyy650, vyy660, cgg)
new_compare30(vyy650, vyy660, ty_Int) → new_compare6(vyy650, vyy660)
new_ltEs19(vyy652, vyy662, app(app(ty_@2, bhg), bhh)) → new_ltEs10(vyy652, vyy662, bhg, bhh)
new_esEs20(vyy3000, vyy400, ty_Ordering) → new_esEs8(vyy3000, vyy400)
new_ltEs16(LT, EQ) → True
new_esEs23(vyy650, vyy660, ty_Ordering) → new_esEs8(vyy650, vyy660)
new_compare27(vyy650, vyy660, False, dc, dd, de) → new_compare113(vyy650, vyy660, new_ltEs9(vyy650, vyy660, dc, dd, de), dc, dd, de)
new_ltEs19(vyy652, vyy662, app(app(app(ty_@3, bhd), bhe), bhf)) → new_ltEs9(vyy652, vyy662, bhd, bhe, bhf)
new_ltEs7(Just(vyy6500), Just(vyy6600), app(ty_[], ef)) → new_ltEs15(vyy6500, vyy6600, ef)
new_esEs28(vyy3000, vyy400, ty_Char) → new_esEs15(vyy3000, vyy400)
new_ltEs19(vyy652, vyy662, app(ty_Ratio, cae)) → new_ltEs17(vyy652, vyy662, cae)
new_compare30(vyy650, vyy660, app(app(app(ty_@3, cgb), cgc), cgd)) → new_compare16(vyy650, vyy660, cgb, cgc, cgd)
new_esEs21(vyy3000, vyy400, ty_Char) → new_esEs15(vyy3000, vyy400)
new_esEs7(Left(vyy3000), Left(vyy400), app(ty_[], bbc), baa) → new_esEs17(vyy3000, vyy400, bbc)
new_ltEs5(Right(vyy650), Right(vyy660), dag, app(app(app(ty_@3, dah), dba), dbb)) → new_ltEs9(vyy650, vyy660, dah, dba, dbb)
new_esEs7(Right(vyy3000), Right(vyy400), bbd, app(ty_Ratio, bbg)) → new_esEs13(vyy3000, vyy400, bbg)
new_primEqInt(Neg(Zero), Neg(Zero)) → True
new_esEs7(Left(vyy3000), Left(vyy400), app(ty_Ratio, bad), baa) → new_esEs13(vyy3000, vyy400, bad)
new_lt7(vyy650, vyy660, ty_Double) → new_lt8(vyy650, vyy660)
new_ltEs7(Just(vyy6500), Just(vyy6600), ty_@0) → new_ltEs6(vyy6500, vyy6600)
new_compare8(vyy650, vyy660, bd) → new_compare24(vyy650, vyy660, new_esEs6(vyy650, vyy660, bd), bd)
new_primEqInt(Neg(Zero), Neg(Succ(vyy4000))) → False
new_primEqInt(Neg(Succ(vyy30000)), Neg(Zero)) → False
new_esEs8(EQ, EQ) → True
new_compare26(vyy650, vyy660, True, da, db) → EQ
new_primPlusNat1(Zero, vyy40100) → Succ(vyy40100)
new_lt7(vyy650, vyy660, app(app(app(ty_@3, ge), gf), gg)) → new_lt6(vyy650, vyy660, ge, gf, gg)
new_lt19(vyy651, vyy661, app(app(app(ty_@3, caf), cag), cah)) → new_lt6(vyy651, vyy661, caf, cag, cah)
new_esEs23(vyy650, vyy660, app(app(app(ty_@3, dc), dd), de)) → new_esEs4(vyy650, vyy660, dc, dd, de)
new_ltEs5(Right(vyy650), Right(vyy660), dag, app(app(ty_@2, dbc), dbd)) → new_ltEs10(vyy650, vyy660, dbc, dbd)
new_esEs26(vyy3002, vyy402, app(app(ty_Either, ccd), cce)) → new_esEs7(vyy3002, vyy402, ccd, cce)
new_primCmpInt(Pos(Zero), Neg(Zero)) → EQ
new_primCmpInt(Neg(Zero), Pos(Zero)) → EQ
new_esEs23(vyy650, vyy660, ty_Integer) → new_esEs14(vyy650, vyy660)
new_ltEs16(GT, LT) → False
new_compare6(vyy65, vyy66) → new_primCmpInt(vyy65, vyy66)
new_ltEs18(vyy651, vyy661, app(app(ty_@2, ff), fg)) → new_ltEs10(vyy651, vyy661, ff, fg)
new_lt20(vyy650, vyy660, ty_Double) → new_lt8(vyy650, vyy660)
new_lt7(vyy650, vyy660, app(app(ty_Either, hc), hd)) → new_lt15(vyy650, vyy660, hc, hd)
new_lt20(vyy650, vyy660, app(app(app(ty_@3, dc), dd), de)) → new_lt6(vyy650, vyy660, dc, dd, de)
new_primCmpNat0(Succ(vyy6500), Succ(vyy6600)) → new_primCmpNat0(vyy6500, vyy6600)
new_compare112(vyy650, vyy660, True) → LT
new_esEs6(Nothing, Nothing, be) → True
new_compare113(vyy650, vyy660, False, dc, dd, de) → GT
new_ltEs18(vyy651, vyy661, ty_Integer) → new_ltEs13(vyy651, vyy661)
new_compare16(vyy650, vyy660, dc, dd, de) → new_compare27(vyy650, vyy660, new_esEs4(vyy650, vyy660, dc, dd, de), dc, dd, de)
new_esEs11(False, False) → True
new_primEqInt(Pos(Succ(vyy30000)), Pos(Succ(vyy4000))) → new_primEqNat0(vyy30000, vyy4000)
new_ltEs18(vyy651, vyy661, ty_Double) → new_ltEs8(vyy651, vyy661)
new_compare10(vyy650, vyy660, False, bb, bc) → GT
new_esEs18(vyy650, vyy660, ty_Int) → new_esEs10(vyy650, vyy660)
new_ltEs5(Left(vyy650), Left(vyy660), app(app(ty_Either, dac), dad), chd) → new_ltEs5(vyy650, vyy660, dac, dad)
new_esEs21(vyy3000, vyy400, app(ty_Maybe, bga)) → new_esEs6(vyy3000, vyy400, bga)
new_ltEs19(vyy652, vyy662, ty_Bool) → new_ltEs14(vyy652, vyy662)
new_esEs20(vyy3000, vyy400, ty_Int) → new_esEs10(vyy3000, vyy400)
new_esEs7(Right(vyy3000), Right(vyy400), bbd, ty_Bool) → new_esEs11(vyy3000, vyy400)
new_ltEs7(Nothing, Just(vyy6600), bd) → True
new_esEs20(vyy3000, vyy400, ty_@0) → new_esEs12(vyy3000, vyy400)
new_esEs7(Right(vyy3000), Right(vyy400), bbd, app(app(app(ty_@3, bca), bcb), bcc)) → new_esEs4(vyy3000, vyy400, bca, bcb, bcc)
new_esEs6(Nothing, Just(vyy400), be) → False
new_esEs6(Just(vyy3000), Nothing, be) → False
new_primEqNat0(Succ(vyy30000), Succ(vyy4000)) → new_primEqNat0(vyy30000, vyy4000)
new_esEs27(vyy3001, vyy401, ty_Ordering) → new_esEs8(vyy3001, vyy401)
new_esEs27(vyy3001, vyy401, ty_@0) → new_esEs12(vyy3001, vyy401)
new_ltEs14(False, False) → True
new_esEs26(vyy3002, vyy402, ty_@0) → new_esEs12(vyy3002, vyy402)
new_ltEs5(Right(vyy650), Right(vyy660), dag, app(ty_Maybe, dbe)) → new_ltEs7(vyy650, vyy660, dbe)
new_foldFM_GE10(vyy50, vyy40, vyy330, vyy331, vyy332, Branch(vyy3330, vyy3331, vyy3332, vyy3333, vyy3334), vyy334, True, h, ba) → new_foldFM_GE20(vyy330, vyy331, new_foldFM_GE0(vyy50, vyy40, vyy334, h, ba), vyy40, vyy3330, vyy3331, vyy3332, vyy3333, vyy3334, h, ba)
new_primCompAux00(vyy135, LT) → LT
new_compare30(vyy650, vyy660, app(app(ty_@2, cge), cgf)) → new_compare11(vyy650, vyy660, cge, cgf)
new_lt20(vyy650, vyy660, ty_@0) → new_lt4(vyy650, vyy660)
new_primCmpInt(Neg(Succ(vyy6500)), Neg(vyy660)) → new_primCmpNat0(vyy660, Succ(vyy6500))
new_lt19(vyy651, vyy661, app(app(ty_@2, cba), cbb)) → new_lt9(vyy651, vyy661, cba, cbb)
new_esEs6(Just(vyy3000), Just(vyy400), ty_Int) → new_esEs10(vyy3000, vyy400)
new_esEs22(vyy651, vyy661, ty_Char) → new_esEs15(vyy651, vyy661)
new_compare9(vyy650, vyy660) → new_compare25(vyy650, vyy660, new_esEs11(vyy650, vyy660))
new_esEs28(vyy3000, vyy400, ty_Ordering) → new_esEs8(vyy3000, vyy400)
new_esEs8(EQ, LT) → False
new_esEs8(LT, EQ) → False
new_primEqInt(Pos(Succ(vyy30000)), Pos(Zero)) → False
new_primEqInt(Pos(Zero), Pos(Succ(vyy4000))) → False
new_foldFM_GE10(vyy50, vyy40, vyy330, vyy331, vyy332, vyy333, vyy334, False, h, ba) → new_foldFM_GE0(vyy50, vyy40, vyy334, h, ba)
new_primPlusNat0(Zero, Succ(vyy401000)) → Succ(vyy401000)
new_primPlusNat0(Succ(vyy10400), Zero) → Succ(vyy10400)
new_esEs21(vyy3000, vyy400, ty_@0) → new_esEs12(vyy3000, vyy400)
new_esEs7(Right(vyy3000), Right(vyy400), bbd, ty_Int) → new_esEs10(vyy3000, vyy400)
new_primCmpNat0(Zero, Zero) → EQ
new_lt10(vyy650, vyy660) → new_esEs8(new_compare6(vyy650, vyy660), LT)
new_primCmpNat0(Succ(vyy6500), Zero) → GT
new_esEs23(vyy650, vyy660, app(app(ty_@2, da), db)) → new_esEs5(vyy650, vyy660, da, db)
new_esEs22(vyy651, vyy661, ty_Integer) → new_esEs14(vyy651, vyy661)
new_esEs20(vyy3000, vyy400, app(app(app(ty_@3, beg), beh), bfa)) → new_esEs4(vyy3000, vyy400, beg, beh, bfa)
new_primCmpInt(Neg(Zero), Pos(Succ(vyy6600))) → LT
new_ltEs5(Right(vyy650), Right(vyy660), dag, ty_Int) → new_ltEs4(vyy650, vyy660)
new_esEs27(vyy3001, vyy401, ty_Double) → new_esEs9(vyy3001, vyy401)
new_esEs22(vyy651, vyy661, app(ty_Ratio, cbg)) → new_esEs13(vyy651, vyy661, cbg)
new_compare18(:%(vyy650, vyy651), :%(vyy660, vyy661), ty_Int) → new_compare6(new_sr(vyy650, vyy661), new_sr(vyy660, vyy651))
new_sr0(Integer(vyy6500), Integer(vyy6610)) → Integer(new_primMulInt(vyy6500, vyy6610))
new_compare29(vyy650, vyy660, False) → new_compare112(vyy650, vyy660, new_ltEs16(vyy650, vyy660))
new_foldFM_GE0(vyy50, vyy40, EmptyFM, h, ba) → vyy50
new_compare30(vyy650, vyy660, ty_Ordering) → new_compare28(vyy650, vyy660)
new_primEqInt(Pos(Succ(vyy30000)), Neg(vyy400)) → False
new_primEqInt(Neg(Succ(vyy30000)), Pos(vyy400)) → False
new_esEs25(vyy3000, vyy400, ty_Int) → new_esEs10(vyy3000, vyy400)
new_foldFM_GE20(vyy330, vyy331, vyy71, vyy40, vyy3330, vyy3331, vyy3332, vyy3333, vyy3334, h, ba) → new_foldFM_GE10(new_keysFM_GE0(vyy330, vyy331, vyy71, h, ba), vyy40, vyy3330, vyy3331, vyy3332, vyy3333, vyy3334, new_gtEs(vyy3330, vyy40, h), h, ba)
new_esEs19(vyy3001, vyy401, ty_Bool) → new_esEs11(vyy3001, vyy401)
new_esEs28(vyy3000, vyy400, app(ty_Maybe, cfc)) → new_esEs6(vyy3000, vyy400, cfc)
new_esEs26(vyy3002, vyy402, ty_Int) → new_esEs10(vyy3002, vyy402)
new_primEqInt(Pos(Zero), Neg(Succ(vyy4000))) → False
new_primEqInt(Neg(Zero), Pos(Succ(vyy4000))) → False
new_esEs26(vyy3002, vyy402, app(ty_[], cde)) → new_esEs17(vyy3002, vyy402, cde)
new_primCompAux00(vyy135, EQ) → vyy135
new_primCmpInt(Pos(Zero), Pos(Succ(vyy6600))) → new_primCmpNat0(Zero, Succ(vyy6600))
new_esEs28(vyy3000, vyy400, app(app(ty_Either, ceh), cfa)) → new_esEs7(vyy3000, vyy400, ceh, cfa)
new_ltEs16(EQ, EQ) → True
new_esEs23(vyy650, vyy660, ty_Bool) → new_esEs11(vyy650, vyy660)
new_esEs8(GT, EQ) → False
new_esEs8(EQ, GT) → False
new_ltEs5(Left(vyy650), Left(vyy660), app(ty_Maybe, dab), chd) → new_ltEs7(vyy650, vyy660, dab)
new_esEs21(vyy3000, vyy400, app(ty_[], bgg)) → new_esEs17(vyy3000, vyy400, bgg)
new_ltEs17(vyy65, vyy66, dcb) → new_not(new_esEs8(new_compare18(vyy65, vyy66, dcb), GT))
new_esEs26(vyy3002, vyy402, app(app(ty_@2, cdc), cdd)) → new_esEs5(vyy3002, vyy402, cdc, cdd)
new_esEs7(Left(vyy3000), Left(vyy400), app(app(app(ty_@3, baf), bag), bah), baa) → new_esEs4(vyy3000, vyy400, baf, bag, bah)
new_esEs26(vyy3002, vyy402, ty_Float) → new_esEs16(vyy3002, vyy402)
new_ltEs5(Left(vyy650), Left(vyy660), ty_Int, chd) → new_ltEs4(vyy650, vyy660)
new_compare28(vyy650, vyy660) → new_compare29(vyy650, vyy660, new_esEs8(vyy650, vyy660))
new_ltEs15(vyy65, vyy66, hg) → new_not(new_esEs8(new_compare0(vyy65, vyy66, hg), GT))
new_esEs21(vyy3000, vyy400, app(app(ty_@2, bge), bgf)) → new_esEs5(vyy3000, vyy400, bge, bgf)
new_lt8(vyy650, vyy660) → new_esEs8(new_compare7(vyy650, vyy660), LT)
new_compare24(vyy650, vyy660, False, bd) → new_compare17(vyy650, vyy660, new_ltEs7(vyy650, vyy660, bd), bd)
new_compare30(vyy650, vyy660, app(ty_Ratio, chc)) → new_compare18(vyy650, vyy660, chc)
new_ltEs5(Left(vyy650), Left(vyy660), ty_Bool, chd) → new_ltEs14(vyy650, vyy660)
new_esEs21(vyy3000, vyy400, ty_Integer) → new_esEs14(vyy3000, vyy400)
new_not(False) → True
new_compare12(@0, @0) → EQ
new_compare24(vyy650, vyy660, True, bd) → EQ
new_esEs7(Left(vyy3000), Left(vyy400), app(ty_Maybe, bae), baa) → new_esEs6(vyy3000, vyy400, bae)
new_ltEs5(Left(vyy650), Left(vyy660), ty_Ordering, chd) → new_ltEs16(vyy650, vyy660)
new_primCmpInt(Pos(Succ(vyy6500)), Pos(vyy660)) → new_primCmpNat0(Succ(vyy6500), vyy660)
new_ltEs5(Left(vyy650), Left(vyy660), ty_Double, chd) → new_ltEs8(vyy650, vyy660)
new_esEs18(vyy650, vyy660, ty_Integer) → new_esEs14(vyy650, vyy660)
new_esEs28(vyy3000, vyy400, app(app(ty_@2, cfg), cfh)) → new_esEs5(vyy3000, vyy400, cfg, cfh)
new_esEs6(Just(vyy3000), Just(vyy400), ty_Integer) → new_esEs14(vyy3000, vyy400)
new_compare0(:(vyy650, vyy651), [], hg) → GT
new_ltEs18(vyy651, vyy661, app(ty_Maybe, fh)) → new_ltEs7(vyy651, vyy661, fh)
new_esEs22(vyy651, vyy661, app(app(app(ty_@3, caf), cag), cah)) → new_esEs4(vyy651, vyy661, caf, cag, cah)
new_ltEs5(Left(vyy650), Left(vyy660), app(app(ty_@2, chh), daa), chd) → new_ltEs10(vyy650, vyy660, chh, daa)
new_ltEs5(Left(vyy650), Left(vyy660), ty_Char, chd) → new_ltEs11(vyy650, vyy660)
new_lt19(vyy651, vyy661, app(ty_Ratio, cbg)) → new_lt18(vyy651, vyy661, cbg)
new_ltEs19(vyy652, vyy662, app(ty_[], cad)) → new_ltEs15(vyy652, vyy662, cad)
new_lt12(vyy650, vyy660, bd) → new_esEs8(new_compare8(vyy650, vyy660, bd), LT)
new_esEs22(vyy651, vyy661, ty_Bool) → new_esEs11(vyy651, vyy661)
new_esEs19(vyy3001, vyy401, app(app(app(ty_@3, bde), bdf), bdg)) → new_esEs4(vyy3001, vyy401, bde, bdf, bdg)
new_ltEs7(Just(vyy6500), Just(vyy6600), app(ty_Maybe, ec)) → new_ltEs7(vyy6500, vyy6600, ec)
new_primCmpInt(Pos(Succ(vyy6500)), Neg(vyy660)) → GT
new_esEs18(vyy650, vyy660, app(app(ty_Either, hc), hd)) → new_esEs7(vyy650, vyy660, hc, hd)
new_esEs28(vyy3000, vyy400, ty_Double) → new_esEs9(vyy3000, vyy400)
new_primMulInt(Pos(vyy30010), Pos(vyy4010)) → Pos(new_primMulNat0(vyy30010, vyy4010))
new_esEs27(vyy3001, vyy401, ty_Bool) → new_esEs11(vyy3001, vyy401)
new_esEs7(Left(vyy3000), Left(vyy400), ty_@0, baa) → new_esEs12(vyy3000, vyy400)
new_esEs7(Right(vyy3000), Right(vyy400), bbd, ty_Char) → new_esEs15(vyy3000, vyy400)
new_ltEs5(Left(vyy650), Left(vyy660), app(app(app(ty_@3, che), chf), chg), chd) → new_ltEs9(vyy650, vyy660, che, chf, chg)
new_compare18(:%(vyy650, vyy651), :%(vyy660, vyy661), ty_Integer) → new_compare15(new_sr0(vyy650, vyy661), new_sr0(vyy660, vyy651))
new_esEs22(vyy651, vyy661, ty_Int) → new_esEs10(vyy651, vyy661)
new_primMulInt(Neg(vyy30010), Neg(vyy4010)) → Pos(new_primMulNat0(vyy30010, vyy4010))
new_compare110(vyy650, vyy660, True) → LT
new_ltEs5(Right(vyy650), Right(vyy660), dag, app(ty_[], dbh)) → new_ltEs15(vyy650, vyy660, dbh)
new_ltEs19(vyy652, vyy662, app(app(ty_Either, cab), cac)) → new_ltEs5(vyy652, vyy662, cab, cac)
new_primEqNat0(Zero, Succ(vyy4000)) → False
new_primEqNat0(Succ(vyy30000), Zero) → False
new_primPlusNat0(Zero, Zero) → Zero
new_ltEs19(vyy652, vyy662, ty_@0) → new_ltEs6(vyy652, vyy662)
new_compare30(vyy650, vyy660, ty_Bool) → new_compare9(vyy650, vyy660)
new_compare110(vyy650, vyy660, False) → GT
new_ltEs14(True, True) → True
new_primEqInt(Pos(Zero), Pos(Zero)) → True
new_lt14(vyy650, vyy660) → new_esEs8(new_compare9(vyy650, vyy660), LT)
new_compare113(vyy650, vyy660, True, dc, dd, de) → LT
new_esEs20(vyy3000, vyy400, app(ty_[], bfd)) → new_esEs17(vyy3000, vyy400, bfd)
new_esEs27(vyy3001, vyy401, app(app(ty_@2, cee), cef)) → new_esEs5(vyy3001, vyy401, cee, cef)
new_esEs22(vyy651, vyy661, app(ty_[], cbf)) → new_esEs17(vyy651, vyy661, cbf)
new_lt19(vyy651, vyy661, ty_Int) → new_lt10(vyy651, vyy661)
new_ltEs7(Nothing, Nothing, bd) → True
new_esEs21(vyy3000, vyy400, app(app(ty_Either, bff), bfg)) → new_esEs7(vyy3000, vyy400, bff, bfg)
new_primPlusNat1(Succ(vyy1040), vyy40100) → Succ(Succ(new_primPlusNat0(vyy1040, vyy40100)))
new_ltEs7(Just(vyy6500), Just(vyy6600), ty_Ordering) → new_ltEs16(vyy6500, vyy6600)
new_ltEs11(vyy65, vyy66) → new_not(new_esEs8(new_compare13(vyy65, vyy66), GT))
new_compare23(vyy650, vyy660, True, bb, bc) → EQ
new_primCmpInt(Neg(Zero), Neg(Succ(vyy6600))) → new_primCmpNat0(Succ(vyy6600), Zero)
new_primCmpInt(Pos(Zero), Neg(Succ(vyy6600))) → GT
new_compare13(Char(vyy650), Char(vyy660)) → new_primCmpNat0(vyy650, vyy660)
new_esEs11(False, True) → False
new_esEs11(True, False) → False
new_esEs25(vyy3000, vyy400, ty_Integer) → new_esEs14(vyy3000, vyy400)
new_ltEs9(@3(vyy650, vyy651, vyy652), @3(vyy660, vyy661, vyy662), bha, bhb, bhc) → new_pePe(new_lt20(vyy650, vyy660, bha), new_asAs(new_esEs23(vyy650, vyy660, bha), new_pePe(new_lt19(vyy651, vyy661, bhb), new_asAs(new_esEs22(vyy651, vyy661, bhb), new_ltEs19(vyy652, vyy662, bhc)))))
new_ltEs18(vyy651, vyy661, ty_Float) → new_ltEs12(vyy651, vyy661)
new_ltEs19(vyy652, vyy662, ty_Double) → new_ltEs8(vyy652, vyy662)
new_esEs21(vyy3000, vyy400, app(app(app(ty_@3, bgb), bgc), bgd)) → new_esEs4(vyy3000, vyy400, bgb, bgc, bgd)
new_esEs6(Just(vyy3000), Just(vyy400), app(app(app(ty_@3, cb), cc), cd)) → new_esEs4(vyy3000, vyy400, cb, cc, cd)
new_esEs22(vyy651, vyy661, ty_@0) → new_esEs12(vyy651, vyy661)
new_esEs6(Just(vyy3000), Just(vyy400), app(ty_[], cg)) → new_esEs17(vyy3000, vyy400, cg)
new_compare26(vyy650, vyy660, False, da, db) → new_compare111(vyy650, vyy660, new_ltEs10(vyy650, vyy660, da, db), da, db)
new_esEs20(vyy3000, vyy400, app(app(ty_Either, bec), bed)) → new_esEs7(vyy3000, vyy400, bec, bed)
new_ltEs7(Just(vyy6500), Just(vyy6600), ty_Double) → new_ltEs8(vyy6500, vyy6600)
new_lt11(vyy650, vyy660) → new_esEs8(new_compare13(vyy650, vyy660), LT)
new_esEs18(vyy650, vyy660, app(ty_Maybe, hb)) → new_esEs6(vyy650, vyy660, hb)
new_lt20(vyy650, vyy660, app(ty_[], bgh)) → new_lt16(vyy650, vyy660, bgh)
new_esEs21(vyy3000, vyy400, ty_Bool) → new_esEs11(vyy3000, vyy400)
new_compare30(vyy650, vyy660, ty_Double) → new_compare7(vyy650, vyy660)
new_ltEs7(Just(vyy6500), Just(vyy6600), app(app(ty_Either, ed), ee)) → new_ltEs5(vyy6500, vyy6600, ed, ee)
new_esEs21(vyy3000, vyy400, ty_Double) → new_esEs9(vyy3000, vyy400)
new_esEs19(vyy3001, vyy401, app(app(ty_@2, bdh), bea)) → new_esEs5(vyy3001, vyy401, bdh, bea)
new_primCompAux0(vyy650, vyy660, vyy126, hg) → new_primCompAux00(vyy126, new_compare30(vyy650, vyy660, hg))
new_primCmpInt(Neg(Zero), Neg(Zero)) → EQ
new_lt19(vyy651, vyy661, ty_Bool) → new_lt14(vyy651, vyy661)
new_esEs20(vyy3000, vyy400, app(ty_Maybe, bef)) → new_esEs6(vyy3000, vyy400, bef)
new_esEs28(vyy3000, vyy400, ty_Bool) → new_esEs11(vyy3000, vyy400)
new_esEs24(vyy3001, vyy401, ty_Int) → new_esEs10(vyy3001, vyy401)
new_lt7(vyy650, vyy660, ty_Integer) → new_lt5(vyy650, vyy660)
new_compare30(vyy650, vyy660, app(ty_[], chb)) → new_compare0(vyy650, vyy660, chb)
new_lt7(vyy650, vyy660, ty_@0) → new_lt4(vyy650, vyy660)
new_asAs(False, vyy91) → False
new_lt15(vyy650, vyy660, bb, bc) → new_esEs8(new_compare19(vyy650, vyy660, bb, bc), LT)
new_primMulInt(Neg(vyy30010), Pos(vyy4010)) → Neg(new_primMulNat0(vyy30010, vyy4010))
new_primMulInt(Pos(vyy30010), Neg(vyy4010)) → Neg(new_primMulNat0(vyy30010, vyy4010))
new_esEs6(Just(vyy3000), Just(vyy400), ty_Char) → new_esEs15(vyy3000, vyy400)
new_esEs26(vyy3002, vyy402, ty_Double) → new_esEs9(vyy3002, vyy402)
new_ltEs19(vyy652, vyy662, ty_Char) → new_ltEs11(vyy652, vyy662)
new_primMulNat0(Zero, Succ(vyy40100)) → Zero
new_primMulNat0(Succ(vyy300100), Zero) → Zero
new_esEs19(vyy3001, vyy401, ty_@0) → new_esEs12(vyy3001, vyy401)
new_esEs6(Just(vyy3000), Just(vyy400), ty_Double) → new_esEs9(vyy3000, vyy400)
new_esEs6(Just(vyy3000), Just(vyy400), app(ty_Maybe, ca)) → new_esEs6(vyy3000, vyy400, ca)
new_esEs21(vyy3000, vyy400, ty_Ordering) → new_esEs8(vyy3000, vyy400)
new_ltEs5(Left(vyy650), Left(vyy660), app(ty_[], dae), chd) → new_ltEs15(vyy650, vyy660, dae)
new_ltEs7(Just(vyy6500), Just(vyy6600), ty_Bool) → new_ltEs14(vyy6500, vyy6600)
new_esEs17(:(vyy3000, vyy3001), :(vyy400, vyy401), bfe) → new_asAs(new_esEs21(vyy3000, vyy400, bfe), new_esEs17(vyy3001, vyy401, bfe))
new_esEs20(vyy3000, vyy400, ty_Float) → new_esEs16(vyy3000, vyy400)
new_lt19(vyy651, vyy661, ty_Double) → new_lt8(vyy651, vyy661)
new_esEs23(vyy650, vyy660, app(ty_Maybe, bd)) → new_esEs6(vyy650, vyy660, bd)
new_lt19(vyy651, vyy661, app(ty_Maybe, cbc)) → new_lt12(vyy651, vyy661, cbc)
new_foldFM_GE0(vyy50, vyy40, Branch(vyy3340, vyy3341, vyy3342, vyy3343, vyy3344), h, ba) → new_foldFM_GE10(vyy50, vyy40, vyy3340, vyy3341, vyy3342, vyy3343, vyy3344, new_gtEs(vyy3340, vyy40, h), h, ba)
new_ltEs18(vyy651, vyy661, ty_Bool) → new_ltEs14(vyy651, vyy661)
new_esEs18(vyy650, vyy660, ty_Ordering) → new_esEs8(vyy650, vyy660)
new_esEs19(vyy3001, vyy401, ty_Double) → new_esEs9(vyy3001, vyy401)
new_esEs18(vyy650, vyy660, ty_Char) → new_esEs15(vyy650, vyy660)
new_esEs11(True, True) → True
new_ltEs18(vyy651, vyy661, app(ty_Ratio, gd)) → new_ltEs17(vyy651, vyy661, gd)
new_foldFM_GE3(vyy330, vyy331, vyy70, vyy40, h, ba) → new_keysFM_GE0(vyy330, vyy331, vyy70, h, ba)
new_lt20(vyy650, vyy660, ty_Float) → new_lt13(vyy650, vyy660)
new_lt20(vyy650, vyy660, app(ty_Ratio, hh)) → new_lt18(vyy650, vyy660, hh)
new_esEs20(vyy3000, vyy400, ty_Integer) → new_esEs14(vyy3000, vyy400)
new_esEs23(vyy650, vyy660, ty_@0) → new_esEs12(vyy650, vyy660)
new_esEs24(vyy3001, vyy401, ty_Integer) → new_esEs14(vyy3001, vyy401)
new_esEs22(vyy651, vyy661, ty_Float) → new_esEs16(vyy651, vyy661)
new_ltEs4(vyy65, vyy66) → new_not(new_esEs8(new_compare6(vyy65, vyy66), GT))
new_esEs28(vyy3000, vyy400, app(ty_[], cga)) → new_esEs17(vyy3000, vyy400, cga)
new_ltEs7(Just(vyy6500), Nothing, bd) → False
new_lt20(vyy650, vyy660, ty_Integer) → new_lt5(vyy650, vyy660)
new_esEs28(vyy3000, vyy400, app(ty_Ratio, cfb)) → new_esEs13(vyy3000, vyy400, cfb)
new_esEs13(:%(vyy3000, vyy3001), :%(vyy400, vyy401), cbh) → new_asAs(new_esEs25(vyy3000, vyy400, cbh), new_esEs24(vyy3001, vyy401, cbh))
new_ltEs14(True, False) → False
new_ltEs7(Just(vyy6500), Just(vyy6600), ty_Char) → new_ltEs11(vyy6500, vyy6600)
new_esEs19(vyy3001, vyy401, ty_Char) → new_esEs15(vyy3001, vyy401)
new_ltEs13(vyy65, vyy66) → new_not(new_esEs8(new_compare15(vyy65, vyy66), GT))
new_esEs4(@3(vyy3000, vyy3001, vyy3002), @3(vyy400, vyy401, vyy402), cca, ccb, ccc) → new_asAs(new_esEs28(vyy3000, vyy400, cca), new_asAs(new_esEs27(vyy3001, vyy401, ccb), new_esEs26(vyy3002, vyy402, ccc)))
new_lt20(vyy650, vyy660, app(app(ty_Either, bb), bc)) → new_lt15(vyy650, vyy660, bb, bc)
new_ltEs19(vyy652, vyy662, app(ty_Maybe, caa)) → new_ltEs7(vyy652, vyy662, caa)
new_esEs6(Just(vyy3000), Just(vyy400), ty_Ordering) → new_esEs8(vyy3000, vyy400)
new_esEs6(Just(vyy3000), Just(vyy400), ty_Float) → new_esEs16(vyy3000, vyy400)
new_compare112(vyy650, vyy660, False) → GT
new_ltEs7(Just(vyy6500), Just(vyy6600), app(ty_Ratio, eg)) → new_ltEs17(vyy6500, vyy6600, eg)
new_compare30(vyy650, vyy660, ty_@0) → new_compare12(vyy650, vyy660)
new_esEs18(vyy650, vyy660, ty_Bool) → new_esEs11(vyy650, vyy660)
new_esEs9(Double(vyy3000, vyy3001), Double(vyy400, vyy401)) → new_esEs10(new_sr(vyy3000, vyy400), new_sr(vyy3001, vyy401))
new_esEs28(vyy3000, vyy400, ty_Int) → new_esEs10(vyy3000, vyy400)
new_lt19(vyy651, vyy661, ty_Char) → new_lt11(vyy651, vyy661)
new_compare17(vyy650, vyy660, True, bd) → LT
new_ltEs10(@2(vyy650, vyy651), @2(vyy660, vyy661), eh, fa) → new_pePe(new_lt7(vyy650, vyy660, eh), new_asAs(new_esEs18(vyy650, vyy660, eh), new_ltEs18(vyy651, vyy661, fa)))
new_primPlusNat0(Succ(vyy10400), Succ(vyy401000)) → Succ(Succ(new_primPlusNat0(vyy10400, vyy401000)))
new_lt13(vyy650, vyy660) → new_esEs8(new_compare14(vyy650, vyy660), LT)
new_lt7(vyy650, vyy660, ty_Char) → new_lt11(vyy650, vyy660)
new_compare15(Integer(vyy650), Integer(vyy660)) → new_primCmpInt(vyy650, vyy660)
new_compare111(vyy650, vyy660, True, da, db) → LT
new_compare0([], :(vyy660, vyy661), hg) → LT
new_esEs19(vyy3001, vyy401, ty_Integer) → new_esEs14(vyy3001, vyy401)
new_ltEs18(vyy651, vyy661, ty_Ordering) → new_ltEs16(vyy651, vyy661)
new_compare23(vyy650, vyy660, False, bb, bc) → new_compare10(vyy650, vyy660, new_ltEs5(vyy650, vyy660, bb, bc), bb, bc)
new_esEs27(vyy3001, vyy401, ty_Integer) → new_esEs14(vyy3001, vyy401)
new_asAs(True, vyy91) → vyy91
new_ltEs12(vyy65, vyy66) → new_not(new_esEs8(new_compare14(vyy65, vyy66), GT))
new_esEs27(vyy3001, vyy401, ty_Float) → new_esEs16(vyy3001, vyy401)
new_esEs20(vyy3000, vyy400, ty_Double) → new_esEs9(vyy3000, vyy400)
new_esEs18(vyy650, vyy660, ty_@0) → new_esEs12(vyy650, vyy660)
new_ltEs19(vyy652, vyy662, ty_Float) → new_ltEs12(vyy652, vyy662)
new_esEs18(vyy650, vyy660, app(ty_Ratio, hf)) → new_esEs13(vyy650, vyy660, hf)
new_esEs6(Just(vyy3000), Just(vyy400), app(app(ty_Either, bf), bg)) → new_esEs7(vyy3000, vyy400, bf, bg)
new_esEs27(vyy3001, vyy401, ty_Int) → new_esEs10(vyy3001, vyy401)
new_esEs7(Left(vyy3000), Left(vyy400), ty_Char, baa) → new_esEs15(vyy3000, vyy400)
new_ltEs16(LT, LT) → True
new_esEs23(vyy650, vyy660, ty_Int) → new_esEs10(vyy650, vyy660)
new_esEs21(vyy3000, vyy400, ty_Int) → new_esEs10(vyy3000, vyy400)
new_compare27(vyy650, vyy660, True, dc, dd, de) → EQ
new_esEs17([], [], bfe) → True
new_esEs17([], :(vyy400, vyy401), bfe) → False
new_esEs17(:(vyy3000, vyy3001), [], bfe) → False
new_ltEs19(vyy652, vyy662, ty_Integer) → new_ltEs13(vyy652, vyy662)
new_esEs19(vyy3001, vyy401, ty_Ordering) → new_esEs8(vyy3001, vyy401)
new_esEs7(Left(vyy3000), Left(vyy400), ty_Bool, baa) → new_esEs11(vyy3000, vyy400)
new_esEs28(vyy3000, vyy400, ty_Integer) → new_esEs14(vyy3000, vyy400)
new_esEs10(vyy300, vyy40) → new_primEqInt(vyy300, vyy40)
new_primCompAux00(vyy135, GT) → GT
new_ltEs19(vyy652, vyy662, ty_Int) → new_ltEs4(vyy652, vyy662)
new_esEs7(Left(vyy3000), Left(vyy400), ty_Float, baa) → new_esEs16(vyy3000, vyy400)
new_ltEs5(Right(vyy650), Right(vyy660), dag, ty_@0) → new_ltEs6(vyy650, vyy660)
new_esEs21(vyy3000, vyy400, ty_Float) → new_esEs16(vyy3000, vyy400)
new_lt5(vyy650, vyy660) → new_esEs8(new_compare15(vyy650, vyy660), LT)
new_primCmpInt(Pos(Zero), Pos(Zero)) → EQ
new_ltEs5(Right(vyy650), Right(vyy660), dag, ty_Integer) → new_ltEs13(vyy650, vyy660)
new_lt20(vyy650, vyy660, app(ty_Maybe, bd)) → new_lt12(vyy650, vyy660, bd)
new_ltEs7(Just(vyy6500), Just(vyy6600), app(app(ty_@2, ea), eb)) → new_ltEs10(vyy6500, vyy6600, ea, eb)
new_primEqInt(Pos(Zero), Neg(Zero)) → True
new_primEqInt(Neg(Zero), Pos(Zero)) → True
new_esEs18(vyy650, vyy660, ty_Float) → new_esEs16(vyy650, vyy660)
new_compare30(vyy650, vyy660, ty_Float) → new_compare14(vyy650, vyy660)
new_primCmpInt(Neg(Succ(vyy6500)), Pos(vyy660)) → LT
new_not(True) → False

The set Q consists of the following terms:

new_ltEs19(x0, x1, ty_Char)
new_esEs17([], [], x0)
new_lt7(x0, x1, app(ty_[], x2))
new_ltEs7(Just(x0), Just(x1), app(app(ty_@2, x2), x3))
new_lt19(x0, x1, ty_Ordering)
new_lt7(x0, x1, ty_Char)
new_ltEs5(Right(x0), Right(x1), x2, app(ty_Ratio, x3))
new_esEs11(True, True)
new_esEs7(Right(x0), Right(x1), x2, app(app(ty_@2, x3), x4))
new_primEqInt(Neg(Zero), Pos(Succ(x0)))
new_primEqInt(Pos(Zero), Neg(Succ(x0)))
new_esEs27(x0, x1, app(app(ty_@2, x2), x3))
new_esEs18(x0, x1, ty_Float)
new_lt13(x0, x1)
new_ltEs18(x0, x1, app(ty_Maybe, x2))
new_esEs7(Left(x0), Left(x1), app(ty_[], x2), x3)
new_ltEs7(Just(x0), Just(x1), ty_Int)
new_primCmpInt(Neg(Succ(x0)), Neg(x1))
new_esEs26(x0, x1, ty_Integer)
new_compare112(x0, x1, True)
new_compare30(x0, x1, ty_Int)
new_ltEs9(@3(x0, x1, x2), @3(x3, x4, x5), x6, x7, x8)
new_ltEs5(Right(x0), Right(x1), x2, app(app(ty_Either, x3), x4))
new_esEs7(Right(x0), Right(x1), x2, app(ty_Maybe, x3))
new_compare17(x0, x1, False, x2)
new_esEs22(x0, x1, app(app(ty_Either, x2), x3))
new_ltEs10(@2(x0, x1), @2(x2, x3), x4, x5)
new_lt7(x0, x1, ty_Int)
new_ltEs18(x0, x1, app(ty_[], x2))
new_esEs19(x0, x1, app(app(ty_@2, x2), x3))
new_lt7(x0, x1, app(app(app(ty_@3, x2), x3), x4))
new_primCmpNat0(Zero, Succ(x0))
new_esEs28(x0, x1, ty_Int)
new_primPlusNat0(Succ(x0), Succ(x1))
new_esEs27(x0, x1, ty_Float)
new_esEs18(x0, x1, ty_Char)
new_esEs18(x0, x1, ty_Double)
new_esEs26(x0, x1, ty_Char)
new_esEs25(x0, x1, ty_Integer)
new_esEs21(x0, x1, app(ty_Ratio, x2))
new_primMulNat0(Zero, Succ(x0))
new_esEs20(x0, x1, app(ty_Maybe, x2))
new_esEs20(x0, x1, app(app(app(ty_@3, x2), x3), x4))
new_compare23(x0, x1, False, x2, x3)
new_esEs22(x0, x1, app(ty_Ratio, x2))
new_lt16(x0, x1, x2)
new_ltEs14(True, False)
new_keysFM_GE0(x0, x1, x2, x3, x4)
new_ltEs14(False, True)
new_esEs27(x0, x1, ty_Integer)
new_compare8(x0, x1, x2)
new_ltEs5(Right(x0), Right(x1), x2, ty_Double)
new_esEs11(True, False)
new_esEs11(False, True)
new_lt7(x0, x1, ty_Float)
new_esEs8(GT, GT)
new_ltEs19(x0, x1, ty_Float)
new_foldFM_GE0(x0, x1, EmptyFM, x2, x3)
new_esEs24(x0, x1, ty_Integer)
new_ltEs19(x0, x1, app(app(ty_@2, x2), x3))
new_esEs19(x0, x1, app(ty_[], x2))
new_lt11(x0, x1)
new_esEs5(@2(x0, x1), @2(x2, x3), x4, x5)
new_esEs8(LT, LT)
new_esEs21(x0, x1, ty_Double)
new_esEs20(x0, x1, ty_Ordering)
new_compare18(:%(x0, x1), :%(x2, x3), ty_Int)
new_ltEs5(Left(x0), Left(x1), app(app(ty_@2, x2), x3), x4)
new_esEs6(Just(x0), Just(x1), app(app(ty_Either, x2), x3))
new_ltEs7(Just(x0), Just(x1), ty_Char)
new_compare15(Integer(x0), Integer(x1))
new_ltEs18(x0, x1, ty_@0)
new_esEs7(Left(x0), Left(x1), app(app(app(ty_@3, x2), x3), x4), x5)
new_ltEs7(Nothing, Nothing, x0)
new_esEs19(x0, x1, ty_Ordering)
new_esEs26(x0, x1, ty_Ordering)
new_esEs19(x0, x1, ty_Integer)
new_compare9(x0, x1)
new_sr(x0, x1)
new_esEs28(x0, x1, app(ty_Ratio, x2))
new_compare26(x0, x1, True, x2, x3)
new_ltEs7(Just(x0), Just(x1), app(app(app(ty_@3, x2), x3), x4))
new_lt7(x0, x1, app(ty_Ratio, x2))
new_ltEs5(Left(x0), Left(x1), ty_Double, x2)
new_lt7(x0, x1, ty_Integer)
new_lt6(x0, x1, x2, x3, x4)
new_lt9(x0, x1, x2, x3)
new_ltEs5(Right(x0), Right(x1), x2, app(app(app(ty_@3, x3), x4), x5))
new_esEs28(x0, x1, app(app(app(ty_@3, x2), x3), x4))
new_ltEs5(Left(x0), Left(x1), ty_Char, x2)
new_esEs8(GT, LT)
new_esEs8(LT, GT)
new_esEs18(x0, x1, app(app(ty_@2, x2), x3))
new_lt19(x0, x1, app(ty_[], x2))
new_primEqNat0(Succ(x0), Succ(x1))
new_compare30(x0, x1, ty_Ordering)
new_esEs7(Left(x0), Left(x1), ty_Bool, x2)
new_lt7(x0, x1, ty_Double)
new_esEs28(x0, x1, app(app(ty_@2, x2), x3))
new_esEs21(x0, x1, app(ty_[], x2))
new_primPlusNat0(Succ(x0), Zero)
new_primEqNat0(Zero, Zero)
new_sr0(Integer(x0), Integer(x1))
new_lt19(x0, x1, ty_Float)
new_esEs6(Just(x0), Just(x1), app(app(ty_@2, x2), x3))
new_ltEs17(x0, x1, x2)
new_esEs21(x0, x1, ty_Ordering)
new_lt19(x0, x1, app(ty_Maybe, x2))
new_esEs21(x0, x1, ty_Int)
new_compare10(x0, x1, True, x2, x3)
new_primCompAux00(x0, GT)
new_esEs25(x0, x1, ty_Int)
new_esEs7(Right(x0), Right(x1), x2, ty_@0)
new_esEs15(Char(x0), Char(x1))
new_compare12(@0, @0)
new_lt20(x0, x1, app(ty_[], x2))
new_esEs19(x0, x1, app(ty_Ratio, x2))
new_compare27(x0, x1, True, x2, x3, x4)
new_lt7(x0, x1, ty_@0)
new_lt20(x0, x1, ty_Ordering)
new_compare30(x0, x1, app(ty_[], x2))
new_esEs12(@0, @0)
new_primCmpInt(Neg(Zero), Neg(Succ(x0)))
new_esEs6(Just(x0), Just(x1), ty_@0)
new_foldFM_GE10(x0, x1, x2, x3, x4, x5, x6, False, x7, x8)
new_primMulNat0(Zero, Zero)
new_compare0(:(x0, x1), :(x2, x3), x4)
new_esEs18(x0, x1, app(app(ty_Either, x2), x3))
new_esEs18(x0, x1, ty_Bool)
new_primCmpNat0(Succ(x0), Zero)
new_primMulInt(Pos(x0), Pos(x1))
new_esEs19(x0, x1, ty_Float)
new_lt19(x0, x1, app(app(app(ty_@3, x2), x3), x4))
new_esEs22(x0, x1, ty_Float)
new_esEs7(Left(x0), Left(x1), app(ty_Maybe, x2), x3)
new_primCmpInt(Neg(Succ(x0)), Pos(x1))
new_primCmpInt(Pos(Succ(x0)), Neg(x1))
new_primPlusNat1(Zero, x0)
new_esEs7(Left(x0), Left(x1), ty_Int, x2)
new_compare29(x0, x1, True)
new_asAs(False, x0)
new_compare30(x0, x1, ty_@0)
new_ltEs19(x0, x1, ty_Int)
new_ltEs7(Just(x0), Nothing, x1)
new_esEs7(Left(x0), Left(x1), ty_@0, x2)
new_ltEs18(x0, x1, ty_Char)
new_esEs20(x0, x1, app(app(ty_@2, x2), x3))
new_ltEs18(x0, x1, ty_Float)
new_compare113(x0, x1, False, x2, x3, x4)
new_ltEs11(x0, x1)
new_esEs21(x0, x1, app(ty_Maybe, x2))
new_compare113(x0, x1, True, x2, x3, x4)
new_ltEs5(Right(x0), Right(x1), x2, app(app(ty_@2, x3), x4))
new_ltEs5(Left(x0), Left(x1), app(app(ty_Either, x2), x3), x4)
new_ltEs5(Left(x0), Left(x1), ty_Ordering, x2)
new_lt5(x0, x1)
new_esEs7(Left(x0), Left(x1), ty_Float, x2)
new_compare0(:(x0, x1), [], x2)
new_esEs27(x0, x1, app(ty_[], x2))
new_primMulNat0(Succ(x0), Succ(x1))
new_compare6(x0, x1)
new_primEqInt(Neg(Succ(x0)), Neg(Succ(x1)))
new_ltEs18(x0, x1, app(app(ty_@2, x2), x3))
new_ltEs5(Left(x0), Left(x1), ty_@0, x2)
new_esEs20(x0, x1, ty_Double)
new_ltEs7(Just(x0), Just(x1), app(ty_Maybe, x2))
new_esEs26(x0, x1, app(ty_Ratio, x2))
new_compare111(x0, x1, False, x2, x3)
new_foldFM_GE10(x0, x1, x2, x3, x4, EmptyFM, x5, True, x6, x7)
new_ltEs15(x0, x1, x2)
new_esEs14(Integer(x0), Integer(x1))
new_compare111(x0, x1, True, x2, x3)
new_lt17(x0, x1)
new_compare17(x0, x1, True, x2)
new_esEs11(False, False)
new_compare30(x0, x1, app(app(app(ty_@3, x2), x3), x4))
new_ltEs5(Left(x0), Left(x1), app(ty_Ratio, x2), x3)
new_ltEs5(Left(x0), Left(x1), app(ty_Maybe, x2), x3)
new_esEs19(x0, x1, ty_Int)
new_ltEs5(Right(x0), Right(x1), x2, ty_@0)
new_esEs7(Right(x0), Right(x1), x2, app(ty_[], x3))
new_compare16(x0, x1, x2, x3, x4)
new_esEs27(x0, x1, ty_Bool)
new_esEs22(x0, x1, ty_@0)
new_compare30(x0, x1, ty_Char)
new_foldFM_GE3(x0, x1, x2, x3, x4, x5)
new_lt20(x0, x1, ty_Int)
new_esEs9(Double(x0, x1), Double(x2, x3))
new_esEs6(Just(x0), Just(x1), app(app(app(ty_@3, x2), x3), x4))
new_esEs23(x0, x1, ty_Bool)
new_esEs7(Left(x0), Left(x1), ty_Double, x2)
new_esEs22(x0, x1, ty_Double)
new_esEs21(x0, x1, ty_Char)
new_esEs19(x0, x1, app(ty_Maybe, x2))
new_esEs4(@3(x0, x1, x2), @3(x3, x4, x5), x6, x7, x8)
new_primMulNat0(Succ(x0), Zero)
new_esEs7(Right(x0), Right(x1), x2, ty_Bool)
new_esEs28(x0, x1, app(ty_[], x2))
new_primPlusNat0(Zero, Zero)
new_ltEs16(EQ, EQ)
new_esEs7(Right(x0), Right(x1), x2, ty_Float)
new_esEs7(Left(x0), Left(x1), ty_Char, x2)
new_ltEs19(x0, x1, ty_Integer)
new_esEs23(x0, x1, app(ty_[], x2))
new_lt14(x0, x1)
new_esEs7(Left(x0), Left(x1), app(ty_Ratio, x2), x3)
new_compare28(x0, x1)
new_compare24(x0, x1, False, x2)
new_lt19(x0, x1, app(ty_Ratio, x2))
new_primCmpInt(Neg(Zero), Neg(Zero))
new_lt7(x0, x1, app(app(ty_Either, x2), x3))
new_esEs21(x0, x1, app(app(ty_@2, x2), x3))
new_ltEs16(LT, LT)
new_lt20(x0, x1, app(app(app(ty_@3, x2), x3), x4))
new_lt19(x0, x1, app(app(ty_Either, x2), x3))
new_ltEs18(x0, x1, ty_Int)
new_lt7(x0, x1, ty_Bool)
new_compare110(x0, x1, False)
new_primEqInt(Neg(Succ(x0)), Neg(Zero))
new_esEs26(x0, x1, ty_Float)
new_esEs18(x0, x1, app(ty_Ratio, x2))
new_primCmpNat0(Succ(x0), Succ(x1))
new_compare30(x0, x1, app(ty_Ratio, x2))
new_esEs20(x0, x1, ty_Bool)
new_esEs23(x0, x1, app(app(app(ty_@3, x2), x3), x4))
new_esEs23(x0, x1, app(ty_Ratio, x2))
new_esEs19(x0, x1, app(app(ty_Either, x2), x3))
new_esEs19(x0, x1, app(app(app(ty_@3, x2), x3), x4))
new_esEs27(x0, x1, ty_Int)
new_lt8(x0, x1)
new_compare30(x0, x1, ty_Bool)
new_ltEs19(x0, x1, ty_Double)
new_ltEs16(GT, LT)
new_ltEs16(LT, GT)
new_ltEs19(x0, x1, app(app(app(ty_@3, x2), x3), x4))
new_compare30(x0, x1, app(ty_Maybe, x2))
new_esEs23(x0, x1, app(app(ty_@2, x2), x3))
new_esEs23(x0, x1, ty_Float)
new_ltEs7(Just(x0), Just(x1), ty_@0)
new_ltEs18(x0, x1, ty_Integer)
new_esEs17(:(x0, x1), [], x2)
new_compare25(x0, x1, True)
new_esEs7(Right(x0), Left(x1), x2, x3)
new_esEs7(Left(x0), Right(x1), x2, x3)
new_primEqInt(Pos(Zero), Neg(Zero))
new_primEqInt(Neg(Zero), Pos(Zero))
new_compare7(Double(x0, x1), Double(x2, x3))
new_esEs6(Nothing, Nothing, x0)
new_ltEs19(x0, x1, app(ty_Ratio, x2))
new_ltEs18(x0, x1, ty_Ordering)
new_ltEs5(Left(x0), Left(x1), ty_Bool, x2)
new_esEs27(x0, x1, ty_@0)
new_ltEs5(Left(x0), Left(x1), ty_Integer, x2)
new_pePe(False, x0)
new_lt20(x0, x1, app(ty_Ratio, x2))
new_esEs13(:%(x0, x1), :%(x2, x3), x4)
new_primCmpInt(Pos(Zero), Pos(Succ(x0)))
new_ltEs7(Just(x0), Just(x1), ty_Double)
new_compare30(x0, x1, app(app(ty_Either, x2), x3))
new_primPlusNat1(Succ(x0), x1)
new_primCmpInt(Pos(Zero), Pos(Zero))
new_esEs8(EQ, EQ)
new_esEs7(Right(x0), Right(x1), x2, ty_Char)
new_esEs7(Right(x0), Right(x1), x2, app(app(app(ty_@3, x3), x4), x5))
new_lt20(x0, x1, app(ty_Maybe, x2))
new_esEs22(x0, x1, ty_Int)
new_ltEs19(x0, x1, ty_Ordering)
new_esEs6(Nothing, Just(x0), x1)
new_compare23(x0, x1, True, x2, x3)
new_primEqInt(Neg(Zero), Neg(Zero))
new_compare11(x0, x1, x2, x3)
new_primEqInt(Neg(Succ(x0)), Pos(x1))
new_primEqInt(Pos(Succ(x0)), Neg(x1))
new_lt7(x0, x1, ty_Ordering)
new_lt7(x0, x1, app(ty_Maybe, x2))
new_primMulInt(Pos(x0), Neg(x1))
new_primMulInt(Neg(x0), Pos(x1))
new_esEs28(x0, x1, ty_Integer)
new_esEs21(x0, x1, app(app(ty_Either, x2), x3))
new_esEs18(x0, x1, ty_Int)
new_compare30(x0, x1, ty_Integer)
new_esEs22(x0, x1, app(ty_Maybe, x2))
new_lt15(x0, x1, x2, x3)
new_ltEs5(Right(x0), Right(x1), x2, app(ty_Maybe, x3))
new_esEs19(x0, x1, ty_Double)
new_ltEs16(GT, GT)
new_ltEs18(x0, x1, app(ty_Ratio, x2))
new_compare27(x0, x1, False, x2, x3, x4)
new_ltEs7(Just(x0), Just(x1), ty_Bool)
new_ltEs8(x0, x1)
new_compare30(x0, x1, ty_Float)
new_lt20(x0, x1, app(app(ty_Either, x2), x3))
new_lt18(x0, x1, x2)
new_ltEs18(x0, x1, app(app(app(ty_@3, x2), x3), x4))
new_ltEs19(x0, x1, app(app(ty_Either, x2), x3))
new_esEs28(x0, x1, ty_@0)
new_esEs22(x0, x1, ty_Bool)
new_compare29(x0, x1, False)
new_esEs10(x0, x1)
new_esEs20(x0, x1, ty_Char)
new_lt7(x0, x1, app(app(ty_@2, x2), x3))
new_esEs7(Right(x0), Right(x1), x2, ty_Double)
new_esEs26(x0, x1, app(app(ty_Either, x2), x3))
new_esEs6(Just(x0), Just(x1), ty_Int)
new_primEqNat0(Zero, Succ(x0))
new_ltEs5(Left(x0), Left(x1), app(app(app(ty_@3, x2), x3), x4), x5)
new_compare18(:%(x0, x1), :%(x2, x3), ty_Integer)
new_esEs20(x0, x1, ty_Int)
new_esEs21(x0, x1, ty_Float)
new_ltEs5(Left(x0), Left(x1), ty_Float, x2)
new_ltEs5(Right(x0), Right(x1), x2, ty_Integer)
new_esEs8(EQ, GT)
new_esEs8(GT, EQ)
new_ltEs7(Just(x0), Just(x1), app(app(ty_Either, x2), x3))
new_ltEs19(x0, x1, app(ty_Maybe, x2))
new_ltEs18(x0, x1, ty_Double)
new_ltEs19(x0, x1, ty_Bool)
new_compare30(x0, x1, ty_Double)
new_esEs27(x0, x1, app(ty_Ratio, x2))
new_ltEs12(x0, x1)
new_esEs23(x0, x1, ty_Integer)
new_esEs22(x0, x1, ty_Char)
new_ltEs5(Right(x0), Right(x1), x2, ty_Bool)
new_esEs28(x0, x1, ty_Bool)
new_primCmpNat0(Zero, Zero)
new_esEs18(x0, x1, app(ty_Maybe, x2))
new_esEs23(x0, x1, app(ty_Maybe, x2))
new_esEs21(x0, x1, ty_Bool)
new_esEs20(x0, x1, app(ty_Ratio, x2))
new_esEs6(Just(x0), Just(x1), app(ty_Ratio, x2))
new_esEs18(x0, x1, app(ty_[], x2))
new_esEs22(x0, x1, ty_Ordering)
new_esEs17([], :(x0, x1), x2)
new_compare24(x0, x1, True, x2)
new_compare0([], [], x0)
new_foldFM_GE0(x0, x1, Branch(x2, x3, x4, x5, x6), x7, x8)
new_esEs7(Left(x0), Left(x1), ty_Integer, x2)
new_lt19(x0, x1, ty_Integer)
new_esEs27(x0, x1, app(app(app(ty_@3, x2), x3), x4))
new_esEs20(x0, x1, app(ty_[], x2))
new_primEqInt(Neg(Zero), Neg(Succ(x0)))
new_primEqInt(Pos(Succ(x0)), Pos(Succ(x1)))
new_esEs21(x0, x1, ty_@0)
new_lt20(x0, x1, ty_@0)
new_primEqInt(Pos(Succ(x0)), Pos(Zero))
new_esEs27(x0, x1, ty_Double)
new_esEs23(x0, x1, ty_Int)
new_esEs23(x0, x1, ty_Char)
new_lt20(x0, x1, ty_Char)
new_esEs22(x0, x1, ty_Integer)
new_esEs23(x0, x1, ty_Ordering)
new_asAs(True, x0)
new_esEs7(Right(x0), Right(x1), x2, ty_Ordering)
new_esEs26(x0, x1, ty_@0)
new_lt19(x0, x1, ty_Char)
new_primCompAux00(x0, EQ)
new_ltEs14(True, True)
new_ltEs14(False, False)
new_esEs19(x0, x1, ty_Char)
new_lt20(x0, x1, ty_Double)
new_esEs28(x0, x1, app(ty_Maybe, x2))
new_lt19(x0, x1, app(app(ty_@2, x2), x3))
new_lt20(x0, x1, app(app(ty_@2, x2), x3))
new_ltEs18(x0, x1, app(app(ty_Either, x2), x3))
new_primPlusNat0(Zero, Succ(x0))
new_esEs26(x0, x1, app(app(ty_@2, x2), x3))
new_esEs18(x0, x1, ty_@0)
new_lt19(x0, x1, ty_@0)
new_esEs18(x0, x1, ty_Ordering)
new_esEs26(x0, x1, ty_Bool)
new_ltEs7(Just(x0), Just(x1), ty_Ordering)
new_esEs6(Just(x0), Just(x1), ty_Double)
new_not(True)
new_ltEs5(Right(x0), Right(x1), x2, app(ty_[], x3))
new_lt10(x0, x1)
new_esEs20(x0, x1, ty_Integer)
new_esEs22(x0, x1, app(app(app(ty_@3, x2), x3), x4))
new_primCompAux0(x0, x1, x2, x3)
new_ltEs5(Right(x0), Right(x1), x2, ty_Char)
new_esEs16(Float(x0, x1), Float(x2, x3))
new_esEs6(Just(x0), Just(x1), ty_Integer)
new_ltEs16(GT, EQ)
new_ltEs16(EQ, GT)
new_primCmpInt(Neg(Zero), Pos(Succ(x0)))
new_primCmpInt(Pos(Zero), Neg(Succ(x0)))
new_ltEs7(Just(x0), Just(x1), ty_Float)
new_ltEs7(Nothing, Just(x0), x1)
new_esEs7(Right(x0), Right(x1), x2, app(app(ty_Either, x3), x4))
new_esEs27(x0, x1, app(ty_Maybe, x2))
new_esEs28(x0, x1, ty_Float)
new_esEs28(x0, x1, ty_Char)
new_compare30(x0, x1, app(app(ty_@2, x2), x3))
new_esEs23(x0, x1, ty_@0)
new_lt20(x0, x1, ty_Bool)
new_pePe(True, x0)
new_primCmpInt(Pos(Zero), Neg(Zero))
new_primCmpInt(Neg(Zero), Pos(Zero))
new_not(False)
new_compare110(x0, x1, True)
new_ltEs16(LT, EQ)
new_ltEs16(EQ, LT)
new_ltEs19(x0, x1, ty_@0)
new_ltEs13(x0, x1)
new_esEs23(x0, x1, app(app(ty_Either, x2), x3))
new_esEs24(x0, x1, ty_Int)
new_esEs23(x0, x1, ty_Double)
new_esEs7(Right(x0), Right(x1), x2, ty_Integer)
new_ltEs5(Right(x0), Right(x1), x2, ty_Float)
new_ltEs7(Just(x0), Just(x1), ty_Integer)
new_ltEs7(Just(x0), Just(x1), app(ty_[], x2))
new_esEs28(x0, x1, ty_Ordering)
new_esEs6(Just(x0), Just(x1), ty_Char)
new_primEqInt(Pos(Zero), Pos(Succ(x0)))
new_ltEs4(x0, x1)
new_esEs21(x0, x1, app(app(app(ty_@3, x2), x3), x4))
new_esEs26(x0, x1, ty_Int)
new_esEs27(x0, x1, ty_Char)
new_esEs22(x0, x1, app(ty_[], x2))
new_esEs19(x0, x1, ty_Bool)
new_primCmpInt(Pos(Succ(x0)), Pos(x1))
new_compare10(x0, x1, False, x2, x3)
new_esEs26(x0, x1, app(ty_[], x2))
new_primCompAux00(x0, LT)
new_ltEs5(Left(x0), Right(x1), x2, x3)
new_ltEs5(Right(x0), Left(x1), x2, x3)
new_lt4(x0, x1)
new_esEs8(LT, EQ)
new_esEs8(EQ, LT)
new_esEs28(x0, x1, app(app(ty_Either, x2), x3))
new_compare0([], :(x0, x1), x2)
new_esEs7(Left(x0), Left(x1), app(app(ty_Either, x2), x3), x4)
new_esEs18(x0, x1, app(app(app(ty_@3, x2), x3), x4))
new_ltEs18(x0, x1, ty_Bool)
new_lt19(x0, x1, ty_Bool)
new_ltEs7(Just(x0), Just(x1), app(ty_Ratio, x2))
new_ltEs5(Left(x0), Left(x1), app(ty_[], x2), x3)
new_esEs7(Left(x0), Left(x1), app(app(ty_@2, x2), x3), x4)
new_esEs6(Just(x0), Nothing, x1)
new_esEs26(x0, x1, ty_Double)
new_compare13(Char(x0), Char(x1))
new_esEs27(x0, x1, app(app(ty_Either, x2), x3))
new_esEs6(Just(x0), Just(x1), app(ty_[], x2))
new_esEs26(x0, x1, app(ty_Maybe, x2))
new_ltEs5(Left(x0), Left(x1), ty_Int, x2)
new_ltEs5(Right(x0), Right(x1), x2, ty_Int)
new_esEs7(Right(x0), Right(x1), x2, ty_Int)
new_foldFM_GE10(x0, x1, x2, x3, x4, Branch(x5, x6, x7, x8, x9), x10, True, x11, x12)
new_esEs22(x0, x1, app(app(ty_@2, x2), x3))
new_esEs18(x0, x1, ty_Integer)
new_esEs6(Just(x0), Just(x1), ty_Float)
new_compare25(x0, x1, False)
new_esEs7(Right(x0), Right(x1), x2, app(ty_Ratio, x3))
new_primEqNat0(Succ(x0), Zero)
new_lt19(x0, x1, ty_Double)
new_esEs20(x0, x1, app(app(ty_Either, x2), x3))
new_esEs27(x0, x1, ty_Ordering)
new_primEqInt(Pos(Zero), Pos(Zero))
new_esEs6(Just(x0), Just(x1), ty_Bool)
new_compare14(Float(x0, x1), Float(x2, x3))
new_ltEs19(x0, x1, app(ty_[], x2))
new_esEs17(:(x0, x1), :(x2, x3), x4)
new_esEs20(x0, x1, ty_Float)
new_esEs19(x0, x1, ty_@0)
new_lt12(x0, x1, x2)
new_lt19(x0, x1, ty_Int)
new_foldFM_GE20(x0, x1, x2, x3, x4, x5, x6, x7, x8, x9, x10)
new_lt20(x0, x1, ty_Integer)
new_compare19(x0, x1, x2, x3)
new_compare26(x0, x1, False, x2, x3)
new_esEs26(x0, x1, app(app(app(ty_@3, x2), x3), x4))
new_primMulInt(Neg(x0), Neg(x1))
new_esEs6(Just(x0), Just(x1), ty_Ordering)
new_esEs7(Left(x0), Left(x1), ty_Ordering, x2)
new_esEs21(x0, x1, ty_Integer)
new_ltEs6(x0, x1)
new_ltEs5(Right(x0), Right(x1), x2, ty_Ordering)
new_compare112(x0, x1, False)
new_esEs6(Just(x0), Just(x1), app(ty_Maybe, x2))
new_esEs28(x0, x1, ty_Double)
new_lt20(x0, x1, ty_Float)
new_gtEs(x0, x1, x2)
new_esEs20(x0, x1, ty_@0)

We have to consider all minimal (P,Q,R)-chains.
By using the subterm criterion [20] together with the size-change analysis [32] we have proven that there are no infinite chains for this DP problem.

From the DPs we obtained the following set of size-change graphs:



↳ HASKELL
  ↳ LR
    ↳ HASKELL
      ↳ CR
        ↳ HASKELL
          ↳ IFR
            ↳ HASKELL
              ↳ BR
                ↳ HASKELL
                  ↳ COR
                    ↳ HASKELL
                      ↳ LetRed
                        ↳ HASKELL
                          ↳ NumRed
                            ↳ HASKELL
                              ↳ Narrow
                                ↳ AND
                                  ↳ QDP
                                  ↳ QDP
                                  ↳ QDP
                                  ↳ QDP
                                  ↳ QDP
                                  ↳ QDP
                                  ↳ QDP
QDP
                                    ↳ QDPSizeChangeProof

Q DP problem:
The TRS P consists of the following rules:

new_foldFM_GE11(vyy49, vyy330, vyy331, vyy332, Branch(vyy3330, vyy3331, vyy3332, vyy3333, vyy3334), vyy334, True, h, ba) → new_foldFM_GE21(vyy330, vyy331, new_foldFM_GE5(vyy49, vyy334, h, ba), vyy3330, vyy3331, vyy3332, vyy3333, vyy3334, h, ba)
new_foldFM_GE21(vyy330, vyy331, vyy69, vyy3330, vyy3331, vyy3332, vyy3333, vyy3334, h, ba) → new_foldFM_GE11(new_keysFM_GE0(vyy330, vyy331, vyy69, h, ba), vyy3330, vyy3331, vyy3332, vyy3333, vyy3334, new_gtEs0(vyy3330, h), h, ba)
new_foldFM_GE11(vyy49, vyy330, vyy331, vyy332, vyy333, Branch(vyy3340, vyy3341, vyy3342, vyy3343, vyy3344), False, h, ba) → new_foldFM_GE11(vyy49, vyy3340, vyy3341, vyy3342, vyy3343, vyy3344, new_gtEs0(vyy3340, h), h, ba)
new_foldFM_GE4(vyy49, Branch(vyy3340, vyy3341, vyy3342, vyy3343, vyy3344), h, ba) → new_foldFM_GE11(vyy49, vyy3340, vyy3341, vyy3342, vyy3343, vyy3344, new_gtEs0(vyy3340, h), h, ba)
new_foldFM_GE11(vyy49, vyy330, vyy331, vyy332, EmptyFM, vyy334, True, h, ba) → new_foldFM_GE4(vyy49, vyy334, h, ba)
new_foldFM_GE11(vyy49, vyy330, vyy331, vyy332, Branch(vyy3330, vyy3331, vyy3332, vyy3333, vyy3334), vyy334, True, h, ba) → new_foldFM_GE4(vyy49, vyy334, h, ba)

The TRS R consists of the following rules:

new_lt7(vyy650, vyy660, ty_Int) → new_lt10(vyy650, vyy660)
new_esEs23(vyy650, vyy660, app(app(ty_Either, bb), bc)) → new_esEs7(vyy650, vyy660, bb, bc)
new_lt7(vyy650, vyy660, ty_Ordering) → new_lt17(vyy650, vyy660)
new_esEs6(Just(vyy3000), Just(vyy400), app(app(ty_@2, ce), cf)) → new_esEs5(vyy3000, vyy400, ce, cf)
new_esEs7(Left(vyy3000), Left(vyy400), app(app(ty_Either, bab), bac), baa) → new_esEs7(vyy3000, vyy400, bab, bac)
new_ltEs19(vyy652, vyy662, ty_Ordering) → new_ltEs16(vyy652, vyy662)
new_ltEs16(GT, GT) → True
new_compare14(Float(vyy650, vyy651), Float(vyy660, vyy661)) → new_compare6(new_sr(vyy650, vyy660), new_sr(vyy651, vyy661))
new_lt7(vyy650, vyy660, app(ty_Maybe, hb)) → new_lt12(vyy650, vyy660, hb)
new_lt7(vyy650, vyy660, ty_Float) → new_lt13(vyy650, vyy660)
new_esEs16(Float(vyy3000, vyy3001), Float(vyy400, vyy401)) → new_esEs10(new_sr(vyy3000, vyy400), new_sr(vyy3001, vyy401))
new_ltEs5(Right(vyy650), Right(vyy660), dag, ty_Float) → new_ltEs12(vyy650, vyy660)
new_lt20(vyy650, vyy660, ty_Int) → new_lt10(vyy650, vyy660)
new_ltEs18(vyy651, vyy661, app(ty_[], gc)) → new_ltEs15(vyy651, vyy661, gc)
new_compare11(vyy650, vyy660, da, db) → new_compare26(vyy650, vyy660, new_esEs5(vyy650, vyy660, da, db), da, db)
new_esEs7(Right(vyy3000), Right(vyy400), bbd, app(ty_[], bcf)) → new_esEs17(vyy3000, vyy400, bcf)
new_lt20(vyy650, vyy660, ty_Char) → new_lt11(vyy650, vyy660)
new_compare10(vyy650, vyy660, True, bb, bc) → LT
new_lt18(vyy650, vyy660, hh) → new_esEs8(new_compare18(vyy650, vyy660, hh), LT)
new_lt19(vyy651, vyy661, ty_Integer) → new_lt5(vyy651, vyy661)
new_esEs18(vyy650, vyy660, app(ty_[], he)) → new_esEs17(vyy650, vyy660, he)
new_ltEs16(LT, GT) → True
new_compare19(vyy650, vyy660, bb, bc) → new_compare23(vyy650, vyy660, new_esEs7(vyy650, vyy660, bb, bc), bb, bc)
new_ltEs5(Right(vyy650), Right(vyy660), dag, ty_Bool) → new_ltEs14(vyy650, vyy660)
new_esEs23(vyy650, vyy660, app(ty_[], bgh)) → new_esEs17(vyy650, vyy660, bgh)
new_esEs23(vyy650, vyy660, ty_Float) → new_esEs16(vyy650, vyy660)
new_primMulNat0(Zero, Zero) → Zero
new_esEs6(Just(vyy3000), Just(vyy400), app(ty_Ratio, bh)) → new_esEs13(vyy3000, vyy400, bh)
new_esEs27(vyy3001, vyy401, app(app(app(ty_@3, ceb), cec), ced)) → new_esEs4(vyy3001, vyy401, ceb, cec, ced)
new_compare29(vyy650, vyy660, True) → EQ
new_esEs23(vyy650, vyy660, app(ty_Ratio, hh)) → new_esEs13(vyy650, vyy660, hh)
new_esEs18(vyy650, vyy660, ty_Double) → new_esEs9(vyy650, vyy660)
new_lt19(vyy651, vyy661, app(app(ty_Either, cbd), cbe)) → new_lt15(vyy651, vyy661, cbd, cbe)
new_esEs23(vyy650, vyy660, ty_Double) → new_esEs9(vyy650, vyy660)
new_foldFM_GE22(vyy330, vyy331, vyy69, vyy3330, vyy3331, vyy3332, vyy3333, vyy3334, h, ba) → new_foldFM_GE12(new_keysFM_GE0(vyy330, vyy331, vyy69, h, ba), vyy3330, vyy3331, vyy3332, vyy3333, vyy3334, new_gtEs0(vyy3330, h), h, ba)
new_esEs7(Right(vyy3000), Right(vyy400), bbd, ty_Ordering) → new_esEs8(vyy3000, vyy400)
new_esEs19(vyy3001, vyy401, ty_Int) → new_esEs10(vyy3001, vyy401)
new_ltEs14(False, True) → True
new_foldFM_GE12(vyy49, vyy330, vyy331, vyy332, EmptyFM, vyy334, True, h, ba) → new_foldFM_GE30(vyy330, vyy331, new_foldFM_GE5(vyy49, vyy334, h, ba), h, ba)
new_esEs26(vyy3002, vyy402, ty_Char) → new_esEs15(vyy3002, vyy402)
new_lt19(vyy651, vyy661, ty_Ordering) → new_lt17(vyy651, vyy661)
new_esEs23(vyy650, vyy660, ty_Char) → new_esEs15(vyy650, vyy660)
new_lt4(vyy650, vyy660) → new_esEs8(new_compare12(vyy650, vyy660), LT)
new_esEs6(Just(vyy3000), Just(vyy400), ty_Bool) → new_esEs11(vyy3000, vyy400)
new_esEs27(vyy3001, vyy401, ty_Char) → new_esEs15(vyy3001, vyy401)
new_ltEs8(vyy65, vyy66) → new_not(new_esEs8(new_compare7(vyy65, vyy66), GT))
new_esEs20(vyy3000, vyy400, app(ty_Ratio, bee)) → new_esEs13(vyy3000, vyy400, bee)
new_esEs7(Left(vyy3000), Left(vyy400), ty_Integer, baa) → new_esEs14(vyy3000, vyy400)
new_ltEs5(Left(vyy650), Right(vyy660), dag, chd) → True
new_ltEs5(Right(vyy650), Right(vyy660), dag, app(ty_Ratio, dca)) → new_ltEs17(vyy650, vyy660, dca)
new_lt19(vyy651, vyy661, ty_Float) → new_lt13(vyy651, vyy661)
new_esEs22(vyy651, vyy661, app(app(ty_@2, cba), cbb)) → new_esEs5(vyy651, vyy661, cba, cbb)
new_compare0(:(vyy650, vyy651), :(vyy660, vyy661), hg) → new_primCompAux0(vyy650, vyy660, new_compare0(vyy651, vyy661, hg), hg)
new_esEs22(vyy651, vyy661, app(ty_Maybe, cbc)) → new_esEs6(vyy651, vyy661, cbc)
new_lt20(vyy650, vyy660, app(app(ty_@2, da), db)) → new_lt9(vyy650, vyy660, da, db)
new_esEs27(vyy3001, vyy401, app(ty_Maybe, cea)) → new_esEs6(vyy3001, vyy401, cea)
new_ltEs18(vyy651, vyy661, ty_Int) → new_ltEs4(vyy651, vyy661)
new_ltEs5(Right(vyy650), Right(vyy660), dag, app(app(ty_Either, dbf), dbg)) → new_ltEs5(vyy650, vyy660, dbf, dbg)
new_esEs12(@0, @0) → True
new_esEs28(vyy3000, vyy400, ty_@0) → new_esEs12(vyy3000, vyy400)
new_compare30(vyy650, vyy660, app(app(ty_Either, cgh), cha)) → new_compare19(vyy650, vyy660, cgh, cha)
new_esEs26(vyy3002, vyy402, ty_Integer) → new_esEs14(vyy3002, vyy402)
new_esEs18(vyy650, vyy660, app(app(app(ty_@3, ge), gf), gg)) → new_esEs4(vyy650, vyy660, ge, gf, gg)
new_compare17(vyy650, vyy660, False, bd) → GT
new_esEs22(vyy651, vyy661, app(app(ty_Either, cbd), cbe)) → new_esEs7(vyy651, vyy661, cbd, cbe)
new_ltEs5(Right(vyy650), Left(vyy660), dag, chd) → False
new_esEs7(Right(vyy3000), Right(vyy400), bbd, ty_Integer) → new_esEs14(vyy3000, vyy400)
new_lt20(vyy650, vyy660, ty_Bool) → new_lt14(vyy650, vyy660)
new_lt7(vyy650, vyy660, ty_Bool) → new_lt14(vyy650, vyy660)
new_ltEs5(Left(vyy650), Left(vyy660), app(ty_Ratio, daf), chd) → new_ltEs17(vyy650, vyy660, daf)
new_esEs7(Right(vyy3000), Right(vyy400), bbd, app(ty_Maybe, bbh)) → new_esEs6(vyy3000, vyy400, bbh)
new_pePe(False, vyy125) → vyy125
new_ltEs5(Right(vyy650), Right(vyy660), dag, ty_Char) → new_ltEs11(vyy650, vyy660)
new_esEs7(Left(vyy3000), Right(vyy400), bbd, baa) → False
new_esEs7(Right(vyy3000), Left(vyy400), bbd, baa) → False
new_esEs27(vyy3001, vyy401, app(app(ty_Either, cdf), cdg)) → new_esEs7(vyy3001, vyy401, cdf, cdg)
new_ltEs7(Just(vyy6500), Just(vyy6600), ty_Integer) → new_ltEs13(vyy6500, vyy6600)
new_compare30(vyy650, vyy660, ty_Integer) → new_compare15(vyy650, vyy660)
new_ltEs5(Right(vyy650), Right(vyy660), dag, ty_Double) → new_ltEs8(vyy650, vyy660)
new_lt19(vyy651, vyy661, app(ty_[], cbf)) → new_lt16(vyy651, vyy661, cbf)
new_esEs19(vyy3001, vyy401, app(ty_Maybe, bdd)) → new_esEs6(vyy3001, vyy401, bdd)
new_ltEs7(Just(vyy6500), Just(vyy6600), ty_Int) → new_ltEs4(vyy6500, vyy6600)
new_ltEs16(EQ, GT) → True
new_esEs28(vyy3000, vyy400, app(app(app(ty_@3, cfd), cfe), cff)) → new_esEs4(vyy3000, vyy400, cfd, cfe, cff)
new_ltEs5(Left(vyy650), Left(vyy660), ty_Float, chd) → new_ltEs12(vyy650, vyy660)
new_ltEs5(Right(vyy650), Right(vyy660), dag, ty_Ordering) → new_ltEs16(vyy650, vyy660)
new_esEs19(vyy3001, vyy401, ty_Float) → new_esEs16(vyy3001, vyy401)
new_lt20(vyy650, vyy660, ty_Ordering) → new_lt17(vyy650, vyy660)
new_esEs27(vyy3001, vyy401, app(ty_[], ceg)) → new_esEs17(vyy3001, vyy401, ceg)
new_esEs22(vyy651, vyy661, ty_Ordering) → new_esEs8(vyy651, vyy661)
new_esEs7(Left(vyy3000), Left(vyy400), ty_Double, baa) → new_esEs9(vyy3000, vyy400)
new_esEs19(vyy3001, vyy401, app(app(ty_Either, bda), bdb)) → new_esEs7(vyy3001, vyy401, bda, bdb)
new_ltEs5(Left(vyy650), Left(vyy660), ty_Integer, chd) → new_ltEs13(vyy650, vyy660)
new_esEs20(vyy3000, vyy400, app(app(ty_@2, bfb), bfc)) → new_esEs5(vyy3000, vyy400, bfb, bfc)
new_esEs7(Right(vyy3000), Right(vyy400), bbd, ty_Double) → new_esEs9(vyy3000, vyy400)
new_esEs14(Integer(vyy3000), Integer(vyy400)) → new_primEqInt(vyy3000, vyy400)
new_lt7(vyy650, vyy660, app(app(ty_@2, gh), ha)) → new_lt9(vyy650, vyy660, gh, ha)
new_ltEs18(vyy651, vyy661, ty_Char) → new_ltEs11(vyy651, vyy661)
new_esEs7(Right(vyy3000), Right(vyy400), bbd, app(app(ty_@2, bcd), bce)) → new_esEs5(vyy3000, vyy400, bcd, bce)
new_primCmpNat0(Zero, Succ(vyy6600)) → LT
new_compare7(Double(vyy650, vyy651), Double(vyy660, vyy661)) → new_compare6(new_sr(vyy650, vyy660), new_sr(vyy651, vyy661))
new_ltEs18(vyy651, vyy661, ty_@0) → new_ltEs6(vyy651, vyy661)
new_esEs26(vyy3002, vyy402, ty_Bool) → new_esEs11(vyy3002, vyy402)
new_esEs8(LT, LT) → True
new_esEs19(vyy3001, vyy401, app(ty_[], beb)) → new_esEs17(vyy3001, vyy401, beb)
new_lt9(vyy650, vyy660, da, db) → new_esEs8(new_compare11(vyy650, vyy660, da, db), LT)
new_lt7(vyy650, vyy660, app(ty_Ratio, hf)) → new_lt18(vyy650, vyy660, hf)
new_esEs21(vyy3000, vyy400, app(ty_Ratio, bfh)) → new_esEs13(vyy3000, vyy400, bfh)
new_esEs20(vyy3000, vyy400, ty_Bool) → new_esEs11(vyy3000, vyy400)
new_esEs7(Right(vyy3000), Right(vyy400), bbd, ty_Float) → new_esEs16(vyy3000, vyy400)
new_pePe(True, vyy125) → True
new_compare0([], [], hg) → EQ
new_primEqNat0(Zero, Zero) → True
new_lt6(vyy650, vyy660, dc, dd, de) → new_esEs8(new_compare16(vyy650, vyy660, dc, dd, de), LT)
new_esEs19(vyy3001, vyy401, app(ty_Ratio, bdc)) → new_esEs13(vyy3001, vyy401, bdc)
new_esEs7(Left(vyy3000), Left(vyy400), app(app(ty_@2, bba), bbb), baa) → new_esEs5(vyy3000, vyy400, bba, bbb)
new_esEs26(vyy3002, vyy402, app(ty_Maybe, ccg)) → new_esEs6(vyy3002, vyy402, ccg)
new_primMulNat0(Succ(vyy300100), Succ(vyy40100)) → new_primPlusNat1(new_primMulNat0(vyy300100, Succ(vyy40100)), vyy40100)
new_compare111(vyy650, vyy660, False, da, db) → GT
new_esEs26(vyy3002, vyy402, app(ty_Ratio, ccf)) → new_esEs13(vyy3002, vyy402, ccf)
new_lt7(vyy650, vyy660, app(ty_[], he)) → new_lt16(vyy650, vyy660, he)
new_esEs6(Just(vyy3000), Just(vyy400), ty_@0) → new_esEs12(vyy3000, vyy400)
new_esEs27(vyy3001, vyy401, app(ty_Ratio, cdh)) → new_esEs13(vyy3001, vyy401, cdh)
new_ltEs7(Just(vyy6500), Just(vyy6600), ty_Float) → new_ltEs12(vyy6500, vyy6600)
new_esEs7(Left(vyy3000), Left(vyy400), ty_Ordering, baa) → new_esEs8(vyy3000, vyy400)
new_esEs5(@2(vyy3000, vyy3001), @2(vyy400, vyy401), bcg, bch) → new_asAs(new_esEs20(vyy3000, vyy400, bcg), new_esEs19(vyy3001, vyy401, bch))
new_ltEs16(EQ, LT) → False
new_ltEs6(vyy65, vyy66) → new_not(new_esEs8(new_compare12(vyy65, vyy66), GT))
new_esEs18(vyy650, vyy660, app(app(ty_@2, gh), ha)) → new_esEs5(vyy650, vyy660, gh, ha)
new_compare25(vyy650, vyy660, False) → new_compare110(vyy650, vyy660, new_ltEs14(vyy650, vyy660))
new_esEs15(Char(vyy3000), Char(vyy400)) → new_primEqNat0(vyy3000, vyy400)
new_foldFM_GE12(vyy49, vyy330, vyy331, vyy332, Branch(vyy3330, vyy3331, vyy3332, vyy3333, vyy3334), vyy334, True, h, ba) → new_foldFM_GE22(vyy330, vyy331, new_foldFM_GE5(vyy49, vyy334, h, ba), vyy3330, vyy3331, vyy3332, vyy3333, vyy3334, h, ba)
new_ltEs16(GT, EQ) → False
new_sr(vyy3001, vyy401) → new_primMulInt(vyy3001, vyy401)
new_esEs20(vyy3000, vyy400, ty_Char) → new_esEs15(vyy3000, vyy400)
new_keysFM_GE0(vyy330, vyy331, vyy68, h, ba) → :(vyy330, vyy68)
new_esEs22(vyy651, vyy661, ty_Double) → new_esEs9(vyy651, vyy661)
new_esEs26(vyy3002, vyy402, ty_Ordering) → new_esEs8(vyy3002, vyy402)
new_ltEs18(vyy651, vyy661, app(app(app(ty_@3, fb), fc), fd)) → new_ltEs9(vyy651, vyy661, fb, fc, fd)
new_esEs8(GT, GT) → True
new_lt19(vyy651, vyy661, ty_@0) → new_lt4(vyy651, vyy661)
new_ltEs7(Just(vyy6500), Just(vyy6600), app(app(app(ty_@3, df), dg), dh)) → new_ltEs9(vyy6500, vyy6600, df, dg, dh)
new_esEs7(Left(vyy3000), Left(vyy400), ty_Int, baa) → new_esEs10(vyy3000, vyy400)
new_esEs7(Right(vyy3000), Right(vyy400), bbd, app(app(ty_Either, bbe), bbf)) → new_esEs7(vyy3000, vyy400, bbe, bbf)
new_esEs26(vyy3002, vyy402, app(app(app(ty_@3, cch), cda), cdb)) → new_esEs4(vyy3002, vyy402, cch, cda, cdb)
new_ltEs5(Left(vyy650), Left(vyy660), ty_@0, chd) → new_ltEs6(vyy650, vyy660)
new_esEs8(GT, LT) → False
new_esEs8(LT, GT) → False
new_ltEs18(vyy651, vyy661, app(app(ty_Either, ga), gb)) → new_ltEs5(vyy651, vyy661, ga, gb)
new_compare30(vyy650, vyy660, ty_Char) → new_compare13(vyy650, vyy660)
new_lt16(vyy650, vyy660, bgh) → new_esEs8(new_compare0(vyy650, vyy660, bgh), LT)
new_esEs28(vyy3000, vyy400, ty_Float) → new_esEs16(vyy3000, vyy400)
new_esEs7(Right(vyy3000), Right(vyy400), bbd, ty_@0) → new_esEs12(vyy3000, vyy400)
new_primEqInt(Neg(Succ(vyy30000)), Neg(Succ(vyy4000))) → new_primEqNat0(vyy30000, vyy4000)
new_compare25(vyy650, vyy660, True) → EQ
new_lt17(vyy650, vyy660) → new_esEs8(new_compare28(vyy650, vyy660), LT)
new_compare30(vyy650, vyy660, app(ty_Maybe, cgg)) → new_compare8(vyy650, vyy660, cgg)
new_compare30(vyy650, vyy660, ty_Int) → new_compare6(vyy650, vyy660)
new_ltEs19(vyy652, vyy662, app(app(ty_@2, bhg), bhh)) → new_ltEs10(vyy652, vyy662, bhg, bhh)
new_esEs20(vyy3000, vyy400, ty_Ordering) → new_esEs8(vyy3000, vyy400)
new_ltEs16(LT, EQ) → True
new_esEs23(vyy650, vyy660, ty_Ordering) → new_esEs8(vyy650, vyy660)
new_compare27(vyy650, vyy660, False, dc, dd, de) → new_compare113(vyy650, vyy660, new_ltEs9(vyy650, vyy660, dc, dd, de), dc, dd, de)
new_ltEs19(vyy652, vyy662, app(app(app(ty_@3, bhd), bhe), bhf)) → new_ltEs9(vyy652, vyy662, bhd, bhe, bhf)
new_ltEs7(Just(vyy6500), Just(vyy6600), app(ty_[], ef)) → new_ltEs15(vyy6500, vyy6600, ef)
new_esEs28(vyy3000, vyy400, ty_Char) → new_esEs15(vyy3000, vyy400)
new_ltEs19(vyy652, vyy662, app(ty_Ratio, cae)) → new_ltEs17(vyy652, vyy662, cae)
new_compare30(vyy650, vyy660, app(app(app(ty_@3, cgb), cgc), cgd)) → new_compare16(vyy650, vyy660, cgb, cgc, cgd)
new_esEs21(vyy3000, vyy400, ty_Char) → new_esEs15(vyy3000, vyy400)
new_esEs7(Left(vyy3000), Left(vyy400), app(ty_[], bbc), baa) → new_esEs17(vyy3000, vyy400, bbc)
new_ltEs5(Right(vyy650), Right(vyy660), dag, app(app(app(ty_@3, dah), dba), dbb)) → new_ltEs9(vyy650, vyy660, dah, dba, dbb)
new_esEs7(Right(vyy3000), Right(vyy400), bbd, app(ty_Ratio, bbg)) → new_esEs13(vyy3000, vyy400, bbg)
new_primEqInt(Neg(Zero), Neg(Zero)) → True
new_esEs7(Left(vyy3000), Left(vyy400), app(ty_Ratio, bad), baa) → new_esEs13(vyy3000, vyy400, bad)
new_lt7(vyy650, vyy660, ty_Double) → new_lt8(vyy650, vyy660)
new_ltEs7(Just(vyy6500), Just(vyy6600), ty_@0) → new_ltEs6(vyy6500, vyy6600)
new_compare8(vyy650, vyy660, bd) → new_compare24(vyy650, vyy660, new_esEs6(vyy650, vyy660, bd), bd)
new_primEqInt(Neg(Zero), Neg(Succ(vyy4000))) → False
new_primEqInt(Neg(Succ(vyy30000)), Neg(Zero)) → False
new_esEs8(EQ, EQ) → True
new_compare26(vyy650, vyy660, True, da, db) → EQ
new_primPlusNat1(Zero, vyy40100) → Succ(vyy40100)
new_lt7(vyy650, vyy660, app(app(app(ty_@3, ge), gf), gg)) → new_lt6(vyy650, vyy660, ge, gf, gg)
new_gtEs0(vyy3330, h) → new_not(new_esEs8(new_compare24(vyy3330, Nothing, new_esEs6(vyy3330, Nothing, h), h), LT))
new_lt19(vyy651, vyy661, app(app(app(ty_@3, caf), cag), cah)) → new_lt6(vyy651, vyy661, caf, cag, cah)
new_esEs23(vyy650, vyy660, app(app(app(ty_@3, dc), dd), de)) → new_esEs4(vyy650, vyy660, dc, dd, de)
new_ltEs5(Right(vyy650), Right(vyy660), dag, app(app(ty_@2, dbc), dbd)) → new_ltEs10(vyy650, vyy660, dbc, dbd)
new_esEs26(vyy3002, vyy402, app(app(ty_Either, ccd), cce)) → new_esEs7(vyy3002, vyy402, ccd, cce)
new_primCmpInt(Pos(Zero), Neg(Zero)) → EQ
new_primCmpInt(Neg(Zero), Pos(Zero)) → EQ
new_esEs23(vyy650, vyy660, ty_Integer) → new_esEs14(vyy650, vyy660)
new_ltEs16(GT, LT) → False
new_compare6(vyy65, vyy66) → new_primCmpInt(vyy65, vyy66)
new_ltEs18(vyy651, vyy661, app(app(ty_@2, ff), fg)) → new_ltEs10(vyy651, vyy661, ff, fg)
new_lt20(vyy650, vyy660, ty_Double) → new_lt8(vyy650, vyy660)
new_lt7(vyy650, vyy660, app(app(ty_Either, hc), hd)) → new_lt15(vyy650, vyy660, hc, hd)
new_lt20(vyy650, vyy660, app(app(app(ty_@3, dc), dd), de)) → new_lt6(vyy650, vyy660, dc, dd, de)
new_primCmpNat0(Succ(vyy6500), Succ(vyy6600)) → new_primCmpNat0(vyy6500, vyy6600)
new_compare112(vyy650, vyy660, True) → LT
new_esEs6(Nothing, Nothing, be) → True
new_compare113(vyy650, vyy660, False, dc, dd, de) → GT
new_ltEs18(vyy651, vyy661, ty_Integer) → new_ltEs13(vyy651, vyy661)
new_compare16(vyy650, vyy660, dc, dd, de) → new_compare27(vyy650, vyy660, new_esEs4(vyy650, vyy660, dc, dd, de), dc, dd, de)
new_esEs11(False, False) → True
new_primEqInt(Pos(Succ(vyy30000)), Pos(Succ(vyy4000))) → new_primEqNat0(vyy30000, vyy4000)
new_ltEs18(vyy651, vyy661, ty_Double) → new_ltEs8(vyy651, vyy661)
new_compare10(vyy650, vyy660, False, bb, bc) → GT
new_esEs18(vyy650, vyy660, ty_Int) → new_esEs10(vyy650, vyy660)
new_ltEs5(Left(vyy650), Left(vyy660), app(app(ty_Either, dac), dad), chd) → new_ltEs5(vyy650, vyy660, dac, dad)
new_esEs21(vyy3000, vyy400, app(ty_Maybe, bga)) → new_esEs6(vyy3000, vyy400, bga)
new_ltEs19(vyy652, vyy662, ty_Bool) → new_ltEs14(vyy652, vyy662)
new_esEs20(vyy3000, vyy400, ty_Int) → new_esEs10(vyy3000, vyy400)
new_esEs7(Right(vyy3000), Right(vyy400), bbd, ty_Bool) → new_esEs11(vyy3000, vyy400)
new_ltEs7(Nothing, Just(vyy6600), bd) → True
new_esEs20(vyy3000, vyy400, ty_@0) → new_esEs12(vyy3000, vyy400)
new_esEs7(Right(vyy3000), Right(vyy400), bbd, app(app(app(ty_@3, bca), bcb), bcc)) → new_esEs4(vyy3000, vyy400, bca, bcb, bcc)
new_esEs6(Nothing, Just(vyy400), be) → False
new_esEs6(Just(vyy3000), Nothing, be) → False
new_primEqNat0(Succ(vyy30000), Succ(vyy4000)) → new_primEqNat0(vyy30000, vyy4000)
new_esEs27(vyy3001, vyy401, ty_Ordering) → new_esEs8(vyy3001, vyy401)
new_esEs27(vyy3001, vyy401, ty_@0) → new_esEs12(vyy3001, vyy401)
new_ltEs14(False, False) → True
new_esEs26(vyy3002, vyy402, ty_@0) → new_esEs12(vyy3002, vyy402)
new_ltEs5(Right(vyy650), Right(vyy660), dag, app(ty_Maybe, dbe)) → new_ltEs7(vyy650, vyy660, dbe)
new_primCompAux00(vyy135, LT) → LT
new_compare30(vyy650, vyy660, app(app(ty_@2, cge), cgf)) → new_compare11(vyy650, vyy660, cge, cgf)
new_lt20(vyy650, vyy660, ty_@0) → new_lt4(vyy650, vyy660)
new_primCmpInt(Neg(Succ(vyy6500)), Neg(vyy660)) → new_primCmpNat0(vyy660, Succ(vyy6500))
new_lt19(vyy651, vyy661, app(app(ty_@2, cba), cbb)) → new_lt9(vyy651, vyy661, cba, cbb)
new_esEs6(Just(vyy3000), Just(vyy400), ty_Int) → new_esEs10(vyy3000, vyy400)
new_esEs22(vyy651, vyy661, ty_Char) → new_esEs15(vyy651, vyy661)
new_compare9(vyy650, vyy660) → new_compare25(vyy650, vyy660, new_esEs11(vyy650, vyy660))
new_esEs28(vyy3000, vyy400, ty_Ordering) → new_esEs8(vyy3000, vyy400)
new_esEs8(EQ, LT) → False
new_esEs8(LT, EQ) → False
new_primEqInt(Pos(Succ(vyy30000)), Pos(Zero)) → False
new_primEqInt(Pos(Zero), Pos(Succ(vyy4000))) → False
new_primPlusNat0(Zero, Succ(vyy401000)) → Succ(vyy401000)
new_primPlusNat0(Succ(vyy10400), Zero) → Succ(vyy10400)
new_esEs21(vyy3000, vyy400, ty_@0) → new_esEs12(vyy3000, vyy400)
new_esEs7(Right(vyy3000), Right(vyy400), bbd, ty_Int) → new_esEs10(vyy3000, vyy400)
new_primCmpNat0(Zero, Zero) → EQ
new_lt10(vyy650, vyy660) → new_esEs8(new_compare6(vyy650, vyy660), LT)
new_primCmpNat0(Succ(vyy6500), Zero) → GT
new_esEs23(vyy650, vyy660, app(app(ty_@2, da), db)) → new_esEs5(vyy650, vyy660, da, db)
new_esEs22(vyy651, vyy661, ty_Integer) → new_esEs14(vyy651, vyy661)
new_esEs20(vyy3000, vyy400, app(app(app(ty_@3, beg), beh), bfa)) → new_esEs4(vyy3000, vyy400, beg, beh, bfa)
new_primCmpInt(Neg(Zero), Pos(Succ(vyy6600))) → LT
new_ltEs5(Right(vyy650), Right(vyy660), dag, ty_Int) → new_ltEs4(vyy650, vyy660)
new_esEs27(vyy3001, vyy401, ty_Double) → new_esEs9(vyy3001, vyy401)
new_esEs22(vyy651, vyy661, app(ty_Ratio, cbg)) → new_esEs13(vyy651, vyy661, cbg)
new_compare18(:%(vyy650, vyy651), :%(vyy660, vyy661), ty_Int) → new_compare6(new_sr(vyy650, vyy661), new_sr(vyy660, vyy651))
new_sr0(Integer(vyy6500), Integer(vyy6610)) → Integer(new_primMulInt(vyy6500, vyy6610))
new_compare29(vyy650, vyy660, False) → new_compare112(vyy650, vyy660, new_ltEs16(vyy650, vyy660))
new_compare30(vyy650, vyy660, ty_Ordering) → new_compare28(vyy650, vyy660)
new_primEqInt(Pos(Succ(vyy30000)), Neg(vyy400)) → False
new_primEqInt(Neg(Succ(vyy30000)), Pos(vyy400)) → False
new_esEs25(vyy3000, vyy400, ty_Int) → new_esEs10(vyy3000, vyy400)
new_esEs19(vyy3001, vyy401, ty_Bool) → new_esEs11(vyy3001, vyy401)
new_esEs28(vyy3000, vyy400, app(ty_Maybe, cfc)) → new_esEs6(vyy3000, vyy400, cfc)
new_esEs26(vyy3002, vyy402, ty_Int) → new_esEs10(vyy3002, vyy402)
new_primEqInt(Pos(Zero), Neg(Succ(vyy4000))) → False
new_primEqInt(Neg(Zero), Pos(Succ(vyy4000))) → False
new_esEs26(vyy3002, vyy402, app(ty_[], cde)) → new_esEs17(vyy3002, vyy402, cde)
new_primCompAux00(vyy135, EQ) → vyy135
new_primCmpInt(Pos(Zero), Pos(Succ(vyy6600))) → new_primCmpNat0(Zero, Succ(vyy6600))
new_esEs28(vyy3000, vyy400, app(app(ty_Either, ceh), cfa)) → new_esEs7(vyy3000, vyy400, ceh, cfa)
new_foldFM_GE5(vyy49, EmptyFM, h, ba) → vyy49
new_foldFM_GE5(vyy49, Branch(vyy3340, vyy3341, vyy3342, vyy3343, vyy3344), h, ba) → new_foldFM_GE12(vyy49, vyy3340, vyy3341, vyy3342, vyy3343, vyy3344, new_gtEs0(vyy3340, h), h, ba)
new_ltEs16(EQ, EQ) → True
new_esEs23(vyy650, vyy660, ty_Bool) → new_esEs11(vyy650, vyy660)
new_esEs8(GT, EQ) → False
new_esEs8(EQ, GT) → False
new_ltEs5(Left(vyy650), Left(vyy660), app(ty_Maybe, dab), chd) → new_ltEs7(vyy650, vyy660, dab)
new_esEs21(vyy3000, vyy400, app(ty_[], bgg)) → new_esEs17(vyy3000, vyy400, bgg)
new_ltEs17(vyy65, vyy66, dcb) → new_not(new_esEs8(new_compare18(vyy65, vyy66, dcb), GT))
new_esEs26(vyy3002, vyy402, app(app(ty_@2, cdc), cdd)) → new_esEs5(vyy3002, vyy402, cdc, cdd)
new_esEs7(Left(vyy3000), Left(vyy400), app(app(app(ty_@3, baf), bag), bah), baa) → new_esEs4(vyy3000, vyy400, baf, bag, bah)
new_esEs26(vyy3002, vyy402, ty_Float) → new_esEs16(vyy3002, vyy402)
new_ltEs5(Left(vyy650), Left(vyy660), ty_Int, chd) → new_ltEs4(vyy650, vyy660)
new_compare28(vyy650, vyy660) → new_compare29(vyy650, vyy660, new_esEs8(vyy650, vyy660))
new_ltEs15(vyy65, vyy66, hg) → new_not(new_esEs8(new_compare0(vyy65, vyy66, hg), GT))
new_esEs21(vyy3000, vyy400, app(app(ty_@2, bge), bgf)) → new_esEs5(vyy3000, vyy400, bge, bgf)
new_lt8(vyy650, vyy660) → new_esEs8(new_compare7(vyy650, vyy660), LT)
new_compare24(vyy650, vyy660, False, bd) → new_compare17(vyy650, vyy660, new_ltEs7(vyy650, vyy660, bd), bd)
new_compare30(vyy650, vyy660, app(ty_Ratio, chc)) → new_compare18(vyy650, vyy660, chc)
new_ltEs5(Left(vyy650), Left(vyy660), ty_Bool, chd) → new_ltEs14(vyy650, vyy660)
new_esEs21(vyy3000, vyy400, ty_Integer) → new_esEs14(vyy3000, vyy400)
new_not(False) → True
new_compare12(@0, @0) → EQ
new_compare24(vyy650, vyy660, True, bd) → EQ
new_esEs7(Left(vyy3000), Left(vyy400), app(ty_Maybe, bae), baa) → new_esEs6(vyy3000, vyy400, bae)
new_ltEs5(Left(vyy650), Left(vyy660), ty_Ordering, chd) → new_ltEs16(vyy650, vyy660)
new_primCmpInt(Pos(Succ(vyy6500)), Pos(vyy660)) → new_primCmpNat0(Succ(vyy6500), vyy660)
new_ltEs5(Left(vyy650), Left(vyy660), ty_Double, chd) → new_ltEs8(vyy650, vyy660)
new_esEs18(vyy650, vyy660, ty_Integer) → new_esEs14(vyy650, vyy660)
new_esEs28(vyy3000, vyy400, app(app(ty_@2, cfg), cfh)) → new_esEs5(vyy3000, vyy400, cfg, cfh)
new_foldFM_GE30(vyy330, vyy331, vyy68, h, ba) → new_keysFM_GE0(vyy330, vyy331, vyy68, h, ba)
new_esEs6(Just(vyy3000), Just(vyy400), ty_Integer) → new_esEs14(vyy3000, vyy400)
new_compare0(:(vyy650, vyy651), [], hg) → GT
new_ltEs18(vyy651, vyy661, app(ty_Maybe, fh)) → new_ltEs7(vyy651, vyy661, fh)
new_esEs22(vyy651, vyy661, app(app(app(ty_@3, caf), cag), cah)) → new_esEs4(vyy651, vyy661, caf, cag, cah)
new_ltEs5(Left(vyy650), Left(vyy660), app(app(ty_@2, chh), daa), chd) → new_ltEs10(vyy650, vyy660, chh, daa)
new_ltEs5(Left(vyy650), Left(vyy660), ty_Char, chd) → new_ltEs11(vyy650, vyy660)
new_lt19(vyy651, vyy661, app(ty_Ratio, cbg)) → new_lt18(vyy651, vyy661, cbg)
new_ltEs19(vyy652, vyy662, app(ty_[], cad)) → new_ltEs15(vyy652, vyy662, cad)
new_lt12(vyy650, vyy660, bd) → new_esEs8(new_compare8(vyy650, vyy660, bd), LT)
new_esEs22(vyy651, vyy661, ty_Bool) → new_esEs11(vyy651, vyy661)
new_esEs19(vyy3001, vyy401, app(app(app(ty_@3, bde), bdf), bdg)) → new_esEs4(vyy3001, vyy401, bde, bdf, bdg)
new_ltEs7(Just(vyy6500), Just(vyy6600), app(ty_Maybe, ec)) → new_ltEs7(vyy6500, vyy6600, ec)
new_primCmpInt(Pos(Succ(vyy6500)), Neg(vyy660)) → GT
new_esEs18(vyy650, vyy660, app(app(ty_Either, hc), hd)) → new_esEs7(vyy650, vyy660, hc, hd)
new_esEs28(vyy3000, vyy400, ty_Double) → new_esEs9(vyy3000, vyy400)
new_primMulInt(Pos(vyy30010), Pos(vyy4010)) → Pos(new_primMulNat0(vyy30010, vyy4010))
new_esEs27(vyy3001, vyy401, ty_Bool) → new_esEs11(vyy3001, vyy401)
new_esEs7(Left(vyy3000), Left(vyy400), ty_@0, baa) → new_esEs12(vyy3000, vyy400)
new_esEs7(Right(vyy3000), Right(vyy400), bbd, ty_Char) → new_esEs15(vyy3000, vyy400)
new_ltEs5(Left(vyy650), Left(vyy660), app(app(app(ty_@3, che), chf), chg), chd) → new_ltEs9(vyy650, vyy660, che, chf, chg)
new_compare18(:%(vyy650, vyy651), :%(vyy660, vyy661), ty_Integer) → new_compare15(new_sr0(vyy650, vyy661), new_sr0(vyy660, vyy651))
new_esEs22(vyy651, vyy661, ty_Int) → new_esEs10(vyy651, vyy661)
new_primMulInt(Neg(vyy30010), Neg(vyy4010)) → Pos(new_primMulNat0(vyy30010, vyy4010))
new_compare110(vyy650, vyy660, True) → LT
new_ltEs5(Right(vyy650), Right(vyy660), dag, app(ty_[], dbh)) → new_ltEs15(vyy650, vyy660, dbh)
new_ltEs19(vyy652, vyy662, app(app(ty_Either, cab), cac)) → new_ltEs5(vyy652, vyy662, cab, cac)
new_primEqNat0(Zero, Succ(vyy4000)) → False
new_primEqNat0(Succ(vyy30000), Zero) → False
new_primPlusNat0(Zero, Zero) → Zero
new_ltEs19(vyy652, vyy662, ty_@0) → new_ltEs6(vyy652, vyy662)
new_compare30(vyy650, vyy660, ty_Bool) → new_compare9(vyy650, vyy660)
new_compare110(vyy650, vyy660, False) → GT
new_ltEs14(True, True) → True
new_primEqInt(Pos(Zero), Pos(Zero)) → True
new_lt14(vyy650, vyy660) → new_esEs8(new_compare9(vyy650, vyy660), LT)
new_compare113(vyy650, vyy660, True, dc, dd, de) → LT
new_esEs20(vyy3000, vyy400, app(ty_[], bfd)) → new_esEs17(vyy3000, vyy400, bfd)
new_esEs27(vyy3001, vyy401, app(app(ty_@2, cee), cef)) → new_esEs5(vyy3001, vyy401, cee, cef)
new_esEs22(vyy651, vyy661, app(ty_[], cbf)) → new_esEs17(vyy651, vyy661, cbf)
new_lt19(vyy651, vyy661, ty_Int) → new_lt10(vyy651, vyy661)
new_ltEs7(Nothing, Nothing, bd) → True
new_esEs21(vyy3000, vyy400, app(app(ty_Either, bff), bfg)) → new_esEs7(vyy3000, vyy400, bff, bfg)
new_primPlusNat1(Succ(vyy1040), vyy40100) → Succ(Succ(new_primPlusNat0(vyy1040, vyy40100)))
new_ltEs7(Just(vyy6500), Just(vyy6600), ty_Ordering) → new_ltEs16(vyy6500, vyy6600)
new_ltEs11(vyy65, vyy66) → new_not(new_esEs8(new_compare13(vyy65, vyy66), GT))
new_compare23(vyy650, vyy660, True, bb, bc) → EQ
new_primCmpInt(Neg(Zero), Neg(Succ(vyy6600))) → new_primCmpNat0(Succ(vyy6600), Zero)
new_primCmpInt(Pos(Zero), Neg(Succ(vyy6600))) → GT
new_compare13(Char(vyy650), Char(vyy660)) → new_primCmpNat0(vyy650, vyy660)
new_esEs11(False, True) → False
new_esEs11(True, False) → False
new_esEs25(vyy3000, vyy400, ty_Integer) → new_esEs14(vyy3000, vyy400)
new_ltEs9(@3(vyy650, vyy651, vyy652), @3(vyy660, vyy661, vyy662), bha, bhb, bhc) → new_pePe(new_lt20(vyy650, vyy660, bha), new_asAs(new_esEs23(vyy650, vyy660, bha), new_pePe(new_lt19(vyy651, vyy661, bhb), new_asAs(new_esEs22(vyy651, vyy661, bhb), new_ltEs19(vyy652, vyy662, bhc)))))
new_ltEs18(vyy651, vyy661, ty_Float) → new_ltEs12(vyy651, vyy661)
new_ltEs19(vyy652, vyy662, ty_Double) → new_ltEs8(vyy652, vyy662)
new_esEs21(vyy3000, vyy400, app(app(app(ty_@3, bgb), bgc), bgd)) → new_esEs4(vyy3000, vyy400, bgb, bgc, bgd)
new_esEs6(Just(vyy3000), Just(vyy400), app(app(app(ty_@3, cb), cc), cd)) → new_esEs4(vyy3000, vyy400, cb, cc, cd)
new_esEs22(vyy651, vyy661, ty_@0) → new_esEs12(vyy651, vyy661)
new_esEs6(Just(vyy3000), Just(vyy400), app(ty_[], cg)) → new_esEs17(vyy3000, vyy400, cg)
new_compare26(vyy650, vyy660, False, da, db) → new_compare111(vyy650, vyy660, new_ltEs10(vyy650, vyy660, da, db), da, db)
new_esEs20(vyy3000, vyy400, app(app(ty_Either, bec), bed)) → new_esEs7(vyy3000, vyy400, bec, bed)
new_ltEs7(Just(vyy6500), Just(vyy6600), ty_Double) → new_ltEs8(vyy6500, vyy6600)
new_lt11(vyy650, vyy660) → new_esEs8(new_compare13(vyy650, vyy660), LT)
new_esEs18(vyy650, vyy660, app(ty_Maybe, hb)) → new_esEs6(vyy650, vyy660, hb)
new_lt20(vyy650, vyy660, app(ty_[], bgh)) → new_lt16(vyy650, vyy660, bgh)
new_esEs21(vyy3000, vyy400, ty_Bool) → new_esEs11(vyy3000, vyy400)
new_compare30(vyy650, vyy660, ty_Double) → new_compare7(vyy650, vyy660)
new_ltEs7(Just(vyy6500), Just(vyy6600), app(app(ty_Either, ed), ee)) → new_ltEs5(vyy6500, vyy6600, ed, ee)
new_esEs21(vyy3000, vyy400, ty_Double) → new_esEs9(vyy3000, vyy400)
new_esEs19(vyy3001, vyy401, app(app(ty_@2, bdh), bea)) → new_esEs5(vyy3001, vyy401, bdh, bea)
new_primCompAux0(vyy650, vyy660, vyy126, hg) → new_primCompAux00(vyy126, new_compare30(vyy650, vyy660, hg))
new_primCmpInt(Neg(Zero), Neg(Zero)) → EQ
new_lt19(vyy651, vyy661, ty_Bool) → new_lt14(vyy651, vyy661)
new_esEs20(vyy3000, vyy400, app(ty_Maybe, bef)) → new_esEs6(vyy3000, vyy400, bef)
new_esEs28(vyy3000, vyy400, ty_Bool) → new_esEs11(vyy3000, vyy400)
new_esEs24(vyy3001, vyy401, ty_Int) → new_esEs10(vyy3001, vyy401)
new_lt7(vyy650, vyy660, ty_Integer) → new_lt5(vyy650, vyy660)
new_compare30(vyy650, vyy660, app(ty_[], chb)) → new_compare0(vyy650, vyy660, chb)
new_lt7(vyy650, vyy660, ty_@0) → new_lt4(vyy650, vyy660)
new_asAs(False, vyy91) → False
new_lt15(vyy650, vyy660, bb, bc) → new_esEs8(new_compare19(vyy650, vyy660, bb, bc), LT)
new_primMulInt(Neg(vyy30010), Pos(vyy4010)) → Neg(new_primMulNat0(vyy30010, vyy4010))
new_primMulInt(Pos(vyy30010), Neg(vyy4010)) → Neg(new_primMulNat0(vyy30010, vyy4010))
new_esEs6(Just(vyy3000), Just(vyy400), ty_Char) → new_esEs15(vyy3000, vyy400)
new_esEs26(vyy3002, vyy402, ty_Double) → new_esEs9(vyy3002, vyy402)
new_ltEs19(vyy652, vyy662, ty_Char) → new_ltEs11(vyy652, vyy662)
new_primMulNat0(Zero, Succ(vyy40100)) → Zero
new_primMulNat0(Succ(vyy300100), Zero) → Zero
new_esEs19(vyy3001, vyy401, ty_@0) → new_esEs12(vyy3001, vyy401)
new_esEs6(Just(vyy3000), Just(vyy400), ty_Double) → new_esEs9(vyy3000, vyy400)
new_esEs6(Just(vyy3000), Just(vyy400), app(ty_Maybe, ca)) → new_esEs6(vyy3000, vyy400, ca)
new_esEs21(vyy3000, vyy400, ty_Ordering) → new_esEs8(vyy3000, vyy400)
new_ltEs5(Left(vyy650), Left(vyy660), app(ty_[], dae), chd) → new_ltEs15(vyy650, vyy660, dae)
new_ltEs7(Just(vyy6500), Just(vyy6600), ty_Bool) → new_ltEs14(vyy6500, vyy6600)
new_esEs17(:(vyy3000, vyy3001), :(vyy400, vyy401), bfe) → new_asAs(new_esEs21(vyy3000, vyy400, bfe), new_esEs17(vyy3001, vyy401, bfe))
new_esEs20(vyy3000, vyy400, ty_Float) → new_esEs16(vyy3000, vyy400)
new_lt19(vyy651, vyy661, ty_Double) → new_lt8(vyy651, vyy661)
new_esEs23(vyy650, vyy660, app(ty_Maybe, bd)) → new_esEs6(vyy650, vyy660, bd)
new_lt19(vyy651, vyy661, app(ty_Maybe, cbc)) → new_lt12(vyy651, vyy661, cbc)
new_ltEs18(vyy651, vyy661, ty_Bool) → new_ltEs14(vyy651, vyy661)
new_esEs18(vyy650, vyy660, ty_Ordering) → new_esEs8(vyy650, vyy660)
new_esEs19(vyy3001, vyy401, ty_Double) → new_esEs9(vyy3001, vyy401)
new_esEs18(vyy650, vyy660, ty_Char) → new_esEs15(vyy650, vyy660)
new_esEs11(True, True) → True
new_ltEs18(vyy651, vyy661, app(ty_Ratio, gd)) → new_ltEs17(vyy651, vyy661, gd)
new_lt20(vyy650, vyy660, ty_Float) → new_lt13(vyy650, vyy660)
new_lt20(vyy650, vyy660, app(ty_Ratio, hh)) → new_lt18(vyy650, vyy660, hh)
new_esEs20(vyy3000, vyy400, ty_Integer) → new_esEs14(vyy3000, vyy400)
new_esEs23(vyy650, vyy660, ty_@0) → new_esEs12(vyy650, vyy660)
new_foldFM_GE12(vyy49, vyy330, vyy331, vyy332, vyy333, vyy334, False, h, ba) → new_foldFM_GE5(vyy49, vyy334, h, ba)
new_esEs24(vyy3001, vyy401, ty_Integer) → new_esEs14(vyy3001, vyy401)
new_esEs22(vyy651, vyy661, ty_Float) → new_esEs16(vyy651, vyy661)
new_ltEs4(vyy65, vyy66) → new_not(new_esEs8(new_compare6(vyy65, vyy66), GT))
new_esEs28(vyy3000, vyy400, app(ty_[], cga)) → new_esEs17(vyy3000, vyy400, cga)
new_ltEs7(Just(vyy6500), Nothing, bd) → False
new_lt20(vyy650, vyy660, ty_Integer) → new_lt5(vyy650, vyy660)
new_esEs28(vyy3000, vyy400, app(ty_Ratio, cfb)) → new_esEs13(vyy3000, vyy400, cfb)
new_esEs13(:%(vyy3000, vyy3001), :%(vyy400, vyy401), cbh) → new_asAs(new_esEs25(vyy3000, vyy400, cbh), new_esEs24(vyy3001, vyy401, cbh))
new_ltEs14(True, False) → False
new_ltEs7(Just(vyy6500), Just(vyy6600), ty_Char) → new_ltEs11(vyy6500, vyy6600)
new_esEs19(vyy3001, vyy401, ty_Char) → new_esEs15(vyy3001, vyy401)
new_ltEs13(vyy65, vyy66) → new_not(new_esEs8(new_compare15(vyy65, vyy66), GT))
new_esEs4(@3(vyy3000, vyy3001, vyy3002), @3(vyy400, vyy401, vyy402), cca, ccb, ccc) → new_asAs(new_esEs28(vyy3000, vyy400, cca), new_asAs(new_esEs27(vyy3001, vyy401, ccb), new_esEs26(vyy3002, vyy402, ccc)))
new_lt20(vyy650, vyy660, app(app(ty_Either, bb), bc)) → new_lt15(vyy650, vyy660, bb, bc)
new_ltEs19(vyy652, vyy662, app(ty_Maybe, caa)) → new_ltEs7(vyy652, vyy662, caa)
new_esEs6(Just(vyy3000), Just(vyy400), ty_Ordering) → new_esEs8(vyy3000, vyy400)
new_esEs6(Just(vyy3000), Just(vyy400), ty_Float) → new_esEs16(vyy3000, vyy400)
new_compare112(vyy650, vyy660, False) → GT
new_ltEs7(Just(vyy6500), Just(vyy6600), app(ty_Ratio, eg)) → new_ltEs17(vyy6500, vyy6600, eg)
new_compare30(vyy650, vyy660, ty_@0) → new_compare12(vyy650, vyy660)
new_esEs18(vyy650, vyy660, ty_Bool) → new_esEs11(vyy650, vyy660)
new_esEs9(Double(vyy3000, vyy3001), Double(vyy400, vyy401)) → new_esEs10(new_sr(vyy3000, vyy400), new_sr(vyy3001, vyy401))
new_esEs28(vyy3000, vyy400, ty_Int) → new_esEs10(vyy3000, vyy400)
new_lt19(vyy651, vyy661, ty_Char) → new_lt11(vyy651, vyy661)
new_compare17(vyy650, vyy660, True, bd) → LT
new_ltEs10(@2(vyy650, vyy651), @2(vyy660, vyy661), eh, fa) → new_pePe(new_lt7(vyy650, vyy660, eh), new_asAs(new_esEs18(vyy650, vyy660, eh), new_ltEs18(vyy651, vyy661, fa)))
new_primPlusNat0(Succ(vyy10400), Succ(vyy401000)) → Succ(Succ(new_primPlusNat0(vyy10400, vyy401000)))
new_lt13(vyy650, vyy660) → new_esEs8(new_compare14(vyy650, vyy660), LT)
new_lt7(vyy650, vyy660, ty_Char) → new_lt11(vyy650, vyy660)
new_compare15(Integer(vyy650), Integer(vyy660)) → new_primCmpInt(vyy650, vyy660)
new_compare111(vyy650, vyy660, True, da, db) → LT
new_compare0([], :(vyy660, vyy661), hg) → LT
new_esEs19(vyy3001, vyy401, ty_Integer) → new_esEs14(vyy3001, vyy401)
new_compare23(vyy650, vyy660, False, bb, bc) → new_compare10(vyy650, vyy660, new_ltEs5(vyy650, vyy660, bb, bc), bb, bc)
new_ltEs18(vyy651, vyy661, ty_Ordering) → new_ltEs16(vyy651, vyy661)
new_esEs27(vyy3001, vyy401, ty_Integer) → new_esEs14(vyy3001, vyy401)
new_asAs(True, vyy91) → vyy91
new_ltEs12(vyy65, vyy66) → new_not(new_esEs8(new_compare14(vyy65, vyy66), GT))
new_esEs27(vyy3001, vyy401, ty_Float) → new_esEs16(vyy3001, vyy401)
new_esEs20(vyy3000, vyy400, ty_Double) → new_esEs9(vyy3000, vyy400)
new_esEs18(vyy650, vyy660, ty_@0) → new_esEs12(vyy650, vyy660)
new_ltEs19(vyy652, vyy662, ty_Float) → new_ltEs12(vyy652, vyy662)
new_esEs18(vyy650, vyy660, app(ty_Ratio, hf)) → new_esEs13(vyy650, vyy660, hf)
new_esEs6(Just(vyy3000), Just(vyy400), app(app(ty_Either, bf), bg)) → new_esEs7(vyy3000, vyy400, bf, bg)
new_esEs27(vyy3001, vyy401, ty_Int) → new_esEs10(vyy3001, vyy401)
new_esEs7(Left(vyy3000), Left(vyy400), ty_Char, baa) → new_esEs15(vyy3000, vyy400)
new_ltEs16(LT, LT) → True
new_esEs23(vyy650, vyy660, ty_Int) → new_esEs10(vyy650, vyy660)
new_esEs21(vyy3000, vyy400, ty_Int) → new_esEs10(vyy3000, vyy400)
new_compare27(vyy650, vyy660, True, dc, dd, de) → EQ
new_esEs17([], [], bfe) → True
new_esEs17([], :(vyy400, vyy401), bfe) → False
new_esEs17(:(vyy3000, vyy3001), [], bfe) → False
new_ltEs19(vyy652, vyy662, ty_Integer) → new_ltEs13(vyy652, vyy662)
new_esEs19(vyy3001, vyy401, ty_Ordering) → new_esEs8(vyy3001, vyy401)
new_esEs7(Left(vyy3000), Left(vyy400), ty_Bool, baa) → new_esEs11(vyy3000, vyy400)
new_esEs28(vyy3000, vyy400, ty_Integer) → new_esEs14(vyy3000, vyy400)
new_esEs10(vyy300, vyy40) → new_primEqInt(vyy300, vyy40)
new_primCompAux00(vyy135, GT) → GT
new_ltEs19(vyy652, vyy662, ty_Int) → new_ltEs4(vyy652, vyy662)
new_esEs7(Left(vyy3000), Left(vyy400), ty_Float, baa) → new_esEs16(vyy3000, vyy400)
new_ltEs5(Right(vyy650), Right(vyy660), dag, ty_@0) → new_ltEs6(vyy650, vyy660)
new_esEs21(vyy3000, vyy400, ty_Float) → new_esEs16(vyy3000, vyy400)
new_lt5(vyy650, vyy660) → new_esEs8(new_compare15(vyy650, vyy660), LT)
new_primCmpInt(Pos(Zero), Pos(Zero)) → EQ
new_ltEs5(Right(vyy650), Right(vyy660), dag, ty_Integer) → new_ltEs13(vyy650, vyy660)
new_lt20(vyy650, vyy660, app(ty_Maybe, bd)) → new_lt12(vyy650, vyy660, bd)
new_ltEs7(Just(vyy6500), Just(vyy6600), app(app(ty_@2, ea), eb)) → new_ltEs10(vyy6500, vyy6600, ea, eb)
new_primEqInt(Pos(Zero), Neg(Zero)) → True
new_primEqInt(Neg(Zero), Pos(Zero)) → True
new_esEs18(vyy650, vyy660, ty_Float) → new_esEs16(vyy650, vyy660)
new_compare30(vyy650, vyy660, ty_Float) → new_compare14(vyy650, vyy660)
new_primCmpInt(Neg(Succ(vyy6500)), Pos(vyy660)) → LT
new_not(True) → False

The set Q consists of the following terms:

new_ltEs19(x0, x1, ty_Char)
new_esEs17([], [], x0)
new_lt7(x0, x1, app(ty_[], x2))
new_ltEs7(Just(x0), Just(x1), app(app(ty_@2, x2), x3))
new_lt19(x0, x1, ty_Ordering)
new_lt7(x0, x1, ty_Char)
new_ltEs5(Right(x0), Right(x1), x2, app(ty_Ratio, x3))
new_esEs11(True, True)
new_esEs7(Right(x0), Right(x1), x2, app(app(ty_@2, x3), x4))
new_gtEs0(x0, x1)
new_primEqInt(Neg(Zero), Pos(Succ(x0)))
new_primEqInt(Pos(Zero), Neg(Succ(x0)))
new_esEs27(x0, x1, app(app(ty_@2, x2), x3))
new_esEs18(x0, x1, ty_Float)
new_lt13(x0, x1)
new_ltEs18(x0, x1, app(ty_Maybe, x2))
new_esEs7(Left(x0), Left(x1), app(ty_[], x2), x3)
new_ltEs7(Just(x0), Just(x1), ty_Int)
new_primCmpInt(Neg(Succ(x0)), Neg(x1))
new_esEs26(x0, x1, ty_Integer)
new_compare112(x0, x1, True)
new_compare30(x0, x1, ty_Int)
new_ltEs9(@3(x0, x1, x2), @3(x3, x4, x5), x6, x7, x8)
new_ltEs5(Right(x0), Right(x1), x2, app(app(ty_Either, x3), x4))
new_esEs7(Right(x0), Right(x1), x2, app(ty_Maybe, x3))
new_compare17(x0, x1, False, x2)
new_esEs22(x0, x1, app(app(ty_Either, x2), x3))
new_ltEs10(@2(x0, x1), @2(x2, x3), x4, x5)
new_lt7(x0, x1, ty_Int)
new_ltEs18(x0, x1, app(ty_[], x2))
new_esEs19(x0, x1, app(app(ty_@2, x2), x3))
new_lt7(x0, x1, app(app(app(ty_@3, x2), x3), x4))
new_primCmpNat0(Zero, Succ(x0))
new_esEs28(x0, x1, ty_Int)
new_primPlusNat0(Succ(x0), Succ(x1))
new_esEs27(x0, x1, ty_Float)
new_esEs18(x0, x1, ty_Char)
new_esEs18(x0, x1, ty_Double)
new_esEs26(x0, x1, ty_Char)
new_esEs25(x0, x1, ty_Integer)
new_esEs21(x0, x1, app(ty_Ratio, x2))
new_primMulNat0(Zero, Succ(x0))
new_esEs20(x0, x1, app(ty_Maybe, x2))
new_esEs20(x0, x1, app(app(app(ty_@3, x2), x3), x4))
new_foldFM_GE12(x0, x1, x2, x3, EmptyFM, x4, True, x5, x6)
new_compare23(x0, x1, False, x2, x3)
new_esEs22(x0, x1, app(ty_Ratio, x2))
new_lt16(x0, x1, x2)
new_ltEs14(True, False)
new_keysFM_GE0(x0, x1, x2, x3, x4)
new_ltEs14(False, True)
new_esEs27(x0, x1, ty_Integer)
new_compare8(x0, x1, x2)
new_ltEs5(Right(x0), Right(x1), x2, ty_Double)
new_esEs11(True, False)
new_esEs11(False, True)
new_lt7(x0, x1, ty_Float)
new_esEs8(GT, GT)
new_ltEs19(x0, x1, ty_Float)
new_esEs24(x0, x1, ty_Integer)
new_ltEs19(x0, x1, app(app(ty_@2, x2), x3))
new_esEs19(x0, x1, app(ty_[], x2))
new_lt11(x0, x1)
new_esEs5(@2(x0, x1), @2(x2, x3), x4, x5)
new_esEs8(LT, LT)
new_esEs21(x0, x1, ty_Double)
new_esEs20(x0, x1, ty_Ordering)
new_compare18(:%(x0, x1), :%(x2, x3), ty_Int)
new_ltEs5(Left(x0), Left(x1), app(app(ty_@2, x2), x3), x4)
new_esEs6(Just(x0), Just(x1), app(app(ty_Either, x2), x3))
new_ltEs7(Just(x0), Just(x1), ty_Char)
new_compare15(Integer(x0), Integer(x1))
new_ltEs18(x0, x1, ty_@0)
new_esEs7(Left(x0), Left(x1), app(app(app(ty_@3, x2), x3), x4), x5)
new_ltEs7(Nothing, Nothing, x0)
new_esEs19(x0, x1, ty_Ordering)
new_esEs26(x0, x1, ty_Ordering)
new_esEs19(x0, x1, ty_Integer)
new_compare9(x0, x1)
new_sr(x0, x1)
new_esEs28(x0, x1, app(ty_Ratio, x2))
new_compare26(x0, x1, True, x2, x3)
new_foldFM_GE30(x0, x1, x2, x3, x4)
new_ltEs7(Just(x0), Just(x1), app(app(app(ty_@3, x2), x3), x4))
new_lt7(x0, x1, app(ty_Ratio, x2))
new_ltEs5(Left(x0), Left(x1), ty_Double, x2)
new_lt7(x0, x1, ty_Integer)
new_lt6(x0, x1, x2, x3, x4)
new_lt9(x0, x1, x2, x3)
new_ltEs5(Right(x0), Right(x1), x2, app(app(app(ty_@3, x3), x4), x5))
new_esEs28(x0, x1, app(app(app(ty_@3, x2), x3), x4))
new_ltEs5(Left(x0), Left(x1), ty_Char, x2)
new_esEs8(GT, LT)
new_esEs8(LT, GT)
new_esEs18(x0, x1, app(app(ty_@2, x2), x3))
new_lt19(x0, x1, app(ty_[], x2))
new_primEqNat0(Succ(x0), Succ(x1))
new_compare30(x0, x1, ty_Ordering)
new_esEs7(Left(x0), Left(x1), ty_Bool, x2)
new_lt7(x0, x1, ty_Double)
new_esEs28(x0, x1, app(app(ty_@2, x2), x3))
new_esEs21(x0, x1, app(ty_[], x2))
new_primPlusNat0(Succ(x0), Zero)
new_primEqNat0(Zero, Zero)
new_sr0(Integer(x0), Integer(x1))
new_lt19(x0, x1, ty_Float)
new_esEs6(Just(x0), Just(x1), app(app(ty_@2, x2), x3))
new_ltEs17(x0, x1, x2)
new_esEs21(x0, x1, ty_Ordering)
new_lt19(x0, x1, app(ty_Maybe, x2))
new_esEs21(x0, x1, ty_Int)
new_foldFM_GE22(x0, x1, x2, x3, x4, x5, x6, x7, x8, x9)
new_compare10(x0, x1, True, x2, x3)
new_foldFM_GE5(x0, EmptyFM, x1, x2)
new_primCompAux00(x0, GT)
new_esEs25(x0, x1, ty_Int)
new_esEs7(Right(x0), Right(x1), x2, ty_@0)
new_esEs15(Char(x0), Char(x1))
new_compare12(@0, @0)
new_lt20(x0, x1, app(ty_[], x2))
new_esEs19(x0, x1, app(ty_Ratio, x2))
new_compare27(x0, x1, True, x2, x3, x4)
new_lt7(x0, x1, ty_@0)
new_lt20(x0, x1, ty_Ordering)
new_compare30(x0, x1, app(ty_[], x2))
new_esEs12(@0, @0)
new_primCmpInt(Neg(Zero), Neg(Succ(x0)))
new_esEs6(Just(x0), Just(x1), ty_@0)
new_primMulNat0(Zero, Zero)
new_compare0(:(x0, x1), :(x2, x3), x4)
new_esEs18(x0, x1, app(app(ty_Either, x2), x3))
new_esEs18(x0, x1, ty_Bool)
new_primCmpNat0(Succ(x0), Zero)
new_primMulInt(Pos(x0), Pos(x1))
new_esEs19(x0, x1, ty_Float)
new_lt19(x0, x1, app(app(app(ty_@3, x2), x3), x4))
new_esEs22(x0, x1, ty_Float)
new_esEs7(Left(x0), Left(x1), app(ty_Maybe, x2), x3)
new_primCmpInt(Neg(Succ(x0)), Pos(x1))
new_primCmpInt(Pos(Succ(x0)), Neg(x1))
new_primPlusNat1(Zero, x0)
new_esEs7(Left(x0), Left(x1), ty_Int, x2)
new_compare29(x0, x1, True)
new_asAs(False, x0)
new_compare30(x0, x1, ty_@0)
new_ltEs19(x0, x1, ty_Int)
new_ltEs7(Just(x0), Nothing, x1)
new_esEs7(Left(x0), Left(x1), ty_@0, x2)
new_ltEs18(x0, x1, ty_Char)
new_esEs20(x0, x1, app(app(ty_@2, x2), x3))
new_ltEs18(x0, x1, ty_Float)
new_compare113(x0, x1, False, x2, x3, x4)
new_ltEs11(x0, x1)
new_esEs21(x0, x1, app(ty_Maybe, x2))
new_compare113(x0, x1, True, x2, x3, x4)
new_ltEs5(Right(x0), Right(x1), x2, app(app(ty_@2, x3), x4))
new_ltEs5(Left(x0), Left(x1), app(app(ty_Either, x2), x3), x4)
new_ltEs5(Left(x0), Left(x1), ty_Ordering, x2)
new_lt5(x0, x1)
new_esEs7(Left(x0), Left(x1), ty_Float, x2)
new_compare0(:(x0, x1), [], x2)
new_esEs27(x0, x1, app(ty_[], x2))
new_primMulNat0(Succ(x0), Succ(x1))
new_primEqInt(Neg(Succ(x0)), Neg(Succ(x1)))
new_compare6(x0, x1)
new_ltEs18(x0, x1, app(app(ty_@2, x2), x3))
new_ltEs5(Left(x0), Left(x1), ty_@0, x2)
new_esEs20(x0, x1, ty_Double)
new_ltEs7(Just(x0), Just(x1), app(ty_Maybe, x2))
new_esEs26(x0, x1, app(ty_Ratio, x2))
new_compare111(x0, x1, False, x2, x3)
new_ltEs15(x0, x1, x2)
new_esEs14(Integer(x0), Integer(x1))
new_compare111(x0, x1, True, x2, x3)
new_lt17(x0, x1)
new_compare17(x0, x1, True, x2)
new_esEs11(False, False)
new_compare30(x0, x1, app(app(app(ty_@3, x2), x3), x4))
new_ltEs5(Left(x0), Left(x1), app(ty_Ratio, x2), x3)
new_ltEs5(Left(x0), Left(x1), app(ty_Maybe, x2), x3)
new_esEs19(x0, x1, ty_Int)
new_ltEs5(Right(x0), Right(x1), x2, ty_@0)
new_esEs7(Right(x0), Right(x1), x2, app(ty_[], x3))
new_compare16(x0, x1, x2, x3, x4)
new_esEs27(x0, x1, ty_Bool)
new_esEs22(x0, x1, ty_@0)
new_compare30(x0, x1, ty_Char)
new_foldFM_GE12(x0, x1, x2, x3, Branch(x4, x5, x6, x7, x8), x9, True, x10, x11)
new_lt20(x0, x1, ty_Int)
new_esEs9(Double(x0, x1), Double(x2, x3))
new_esEs6(Just(x0), Just(x1), app(app(app(ty_@3, x2), x3), x4))
new_esEs23(x0, x1, ty_Bool)
new_esEs7(Left(x0), Left(x1), ty_Double, x2)
new_esEs22(x0, x1, ty_Double)
new_esEs21(x0, x1, ty_Char)
new_esEs19(x0, x1, app(ty_Maybe, x2))
new_esEs4(@3(x0, x1, x2), @3(x3, x4, x5), x6, x7, x8)
new_primMulNat0(Succ(x0), Zero)
new_esEs7(Right(x0), Right(x1), x2, ty_Bool)
new_esEs28(x0, x1, app(ty_[], x2))
new_primPlusNat0(Zero, Zero)
new_ltEs16(EQ, EQ)
new_esEs7(Right(x0), Right(x1), x2, ty_Float)
new_esEs7(Left(x0), Left(x1), ty_Char, x2)
new_ltEs19(x0, x1, ty_Integer)
new_esEs23(x0, x1, app(ty_[], x2))
new_lt14(x0, x1)
new_esEs7(Left(x0), Left(x1), app(ty_Ratio, x2), x3)
new_compare28(x0, x1)
new_compare24(x0, x1, False, x2)
new_lt19(x0, x1, app(ty_Ratio, x2))
new_primCmpInt(Neg(Zero), Neg(Zero))
new_lt7(x0, x1, app(app(ty_Either, x2), x3))
new_esEs21(x0, x1, app(app(ty_@2, x2), x3))
new_ltEs16(LT, LT)
new_lt20(x0, x1, app(app(app(ty_@3, x2), x3), x4))
new_lt19(x0, x1, app(app(ty_Either, x2), x3))
new_ltEs18(x0, x1, ty_Int)
new_lt7(x0, x1, ty_Bool)
new_compare110(x0, x1, False)
new_primEqInt(Neg(Succ(x0)), Neg(Zero))
new_esEs26(x0, x1, ty_Float)
new_esEs18(x0, x1, app(ty_Ratio, x2))
new_primCmpNat0(Succ(x0), Succ(x1))
new_compare30(x0, x1, app(ty_Ratio, x2))
new_esEs20(x0, x1, ty_Bool)
new_esEs23(x0, x1, app(app(app(ty_@3, x2), x3), x4))
new_esEs23(x0, x1, app(ty_Ratio, x2))
new_esEs19(x0, x1, app(app(ty_Either, x2), x3))
new_esEs19(x0, x1, app(app(app(ty_@3, x2), x3), x4))
new_esEs27(x0, x1, ty_Int)
new_lt8(x0, x1)
new_compare30(x0, x1, ty_Bool)
new_ltEs19(x0, x1, ty_Double)
new_ltEs16(GT, LT)
new_ltEs16(LT, GT)
new_ltEs19(x0, x1, app(app(app(ty_@3, x2), x3), x4))
new_compare30(x0, x1, app(ty_Maybe, x2))
new_esEs23(x0, x1, app(app(ty_@2, x2), x3))
new_esEs23(x0, x1, ty_Float)
new_ltEs7(Just(x0), Just(x1), ty_@0)
new_ltEs18(x0, x1, ty_Integer)
new_esEs17(:(x0, x1), [], x2)
new_compare25(x0, x1, True)
new_esEs7(Right(x0), Left(x1), x2, x3)
new_esEs7(Left(x0), Right(x1), x2, x3)
new_primEqInt(Pos(Zero), Neg(Zero))
new_primEqInt(Neg(Zero), Pos(Zero))
new_compare7(Double(x0, x1), Double(x2, x3))
new_esEs6(Nothing, Nothing, x0)
new_ltEs19(x0, x1, app(ty_Ratio, x2))
new_ltEs18(x0, x1, ty_Ordering)
new_ltEs5(Left(x0), Left(x1), ty_Bool, x2)
new_esEs27(x0, x1, ty_@0)
new_ltEs5(Left(x0), Left(x1), ty_Integer, x2)
new_pePe(False, x0)
new_lt20(x0, x1, app(ty_Ratio, x2))
new_esEs13(:%(x0, x1), :%(x2, x3), x4)
new_primCmpInt(Pos(Zero), Pos(Succ(x0)))
new_ltEs7(Just(x0), Just(x1), ty_Double)
new_compare30(x0, x1, app(app(ty_Either, x2), x3))
new_primPlusNat1(Succ(x0), x1)
new_primCmpInt(Pos(Zero), Pos(Zero))
new_esEs8(EQ, EQ)
new_esEs7(Right(x0), Right(x1), x2, ty_Char)
new_esEs7(Right(x0), Right(x1), x2, app(app(app(ty_@3, x3), x4), x5))
new_lt20(x0, x1, app(ty_Maybe, x2))
new_esEs22(x0, x1, ty_Int)
new_ltEs19(x0, x1, ty_Ordering)
new_esEs6(Nothing, Just(x0), x1)
new_compare23(x0, x1, True, x2, x3)
new_primEqInt(Neg(Zero), Neg(Zero))
new_compare11(x0, x1, x2, x3)
new_primEqInt(Neg(Succ(x0)), Pos(x1))
new_primEqInt(Pos(Succ(x0)), Neg(x1))
new_lt7(x0, x1, ty_Ordering)
new_lt7(x0, x1, app(ty_Maybe, x2))
new_primMulInt(Pos(x0), Neg(x1))
new_primMulInt(Neg(x0), Pos(x1))
new_esEs28(x0, x1, ty_Integer)
new_esEs21(x0, x1, app(app(ty_Either, x2), x3))
new_esEs18(x0, x1, ty_Int)
new_compare30(x0, x1, ty_Integer)
new_esEs22(x0, x1, app(ty_Maybe, x2))
new_lt15(x0, x1, x2, x3)
new_ltEs5(Right(x0), Right(x1), x2, app(ty_Maybe, x3))
new_esEs19(x0, x1, ty_Double)
new_ltEs16(GT, GT)
new_ltEs18(x0, x1, app(ty_Ratio, x2))
new_compare27(x0, x1, False, x2, x3, x4)
new_ltEs7(Just(x0), Just(x1), ty_Bool)
new_ltEs8(x0, x1)
new_compare30(x0, x1, ty_Float)
new_lt20(x0, x1, app(app(ty_Either, x2), x3))
new_lt18(x0, x1, x2)
new_ltEs18(x0, x1, app(app(app(ty_@3, x2), x3), x4))
new_ltEs19(x0, x1, app(app(ty_Either, x2), x3))
new_esEs28(x0, x1, ty_@0)
new_esEs22(x0, x1, ty_Bool)
new_compare29(x0, x1, False)
new_esEs10(x0, x1)
new_esEs20(x0, x1, ty_Char)
new_lt7(x0, x1, app(app(ty_@2, x2), x3))
new_esEs7(Right(x0), Right(x1), x2, ty_Double)
new_esEs26(x0, x1, app(app(ty_Either, x2), x3))
new_esEs6(Just(x0), Just(x1), ty_Int)
new_primEqNat0(Zero, Succ(x0))
new_ltEs5(Left(x0), Left(x1), app(app(app(ty_@3, x2), x3), x4), x5)
new_compare18(:%(x0, x1), :%(x2, x3), ty_Integer)
new_esEs20(x0, x1, ty_Int)
new_esEs21(x0, x1, ty_Float)
new_ltEs5(Left(x0), Left(x1), ty_Float, x2)
new_ltEs5(Right(x0), Right(x1), x2, ty_Integer)
new_esEs8(EQ, GT)
new_esEs8(GT, EQ)
new_ltEs7(Just(x0), Just(x1), app(app(ty_Either, x2), x3))
new_ltEs19(x0, x1, app(ty_Maybe, x2))
new_ltEs18(x0, x1, ty_Double)
new_ltEs19(x0, x1, ty_Bool)
new_compare30(x0, x1, ty_Double)
new_esEs27(x0, x1, app(ty_Ratio, x2))
new_foldFM_GE5(x0, Branch(x1, x2, x3, x4, x5), x6, x7)
new_ltEs12(x0, x1)
new_esEs23(x0, x1, ty_Integer)
new_esEs22(x0, x1, ty_Char)
new_ltEs5(Right(x0), Right(x1), x2, ty_Bool)
new_esEs28(x0, x1, ty_Bool)
new_primCmpNat0(Zero, Zero)
new_esEs18(x0, x1, app(ty_Maybe, x2))
new_esEs23(x0, x1, app(ty_Maybe, x2))
new_esEs21(x0, x1, ty_Bool)
new_esEs20(x0, x1, app(ty_Ratio, x2))
new_esEs6(Just(x0), Just(x1), app(ty_Ratio, x2))
new_esEs18(x0, x1, app(ty_[], x2))
new_esEs22(x0, x1, ty_Ordering)
new_esEs17([], :(x0, x1), x2)
new_compare24(x0, x1, True, x2)
new_compare0([], [], x0)
new_esEs7(Left(x0), Left(x1), ty_Integer, x2)
new_lt19(x0, x1, ty_Integer)
new_esEs27(x0, x1, app(app(app(ty_@3, x2), x3), x4))
new_esEs20(x0, x1, app(ty_[], x2))
new_primEqInt(Neg(Zero), Neg(Succ(x0)))
new_primEqInt(Pos(Succ(x0)), Pos(Succ(x1)))
new_esEs21(x0, x1, ty_@0)
new_lt20(x0, x1, ty_@0)
new_primEqInt(Pos(Succ(x0)), Pos(Zero))
new_esEs27(x0, x1, ty_Double)
new_esEs23(x0, x1, ty_Int)
new_esEs23(x0, x1, ty_Char)
new_lt20(x0, x1, ty_Char)
new_esEs22(x0, x1, ty_Integer)
new_esEs23(x0, x1, ty_Ordering)
new_asAs(True, x0)
new_esEs7(Right(x0), Right(x1), x2, ty_Ordering)
new_esEs26(x0, x1, ty_@0)
new_lt19(x0, x1, ty_Char)
new_primCompAux00(x0, EQ)
new_ltEs14(True, True)
new_ltEs14(False, False)
new_esEs19(x0, x1, ty_Char)
new_lt20(x0, x1, ty_Double)
new_esEs28(x0, x1, app(ty_Maybe, x2))
new_lt19(x0, x1, app(app(ty_@2, x2), x3))
new_lt20(x0, x1, app(app(ty_@2, x2), x3))
new_ltEs18(x0, x1, app(app(ty_Either, x2), x3))
new_primPlusNat0(Zero, Succ(x0))
new_esEs26(x0, x1, app(app(ty_@2, x2), x3))
new_esEs18(x0, x1, ty_@0)
new_lt19(x0, x1, ty_@0)
new_esEs18(x0, x1, ty_Ordering)
new_esEs26(x0, x1, ty_Bool)
new_ltEs7(Just(x0), Just(x1), ty_Ordering)
new_esEs6(Just(x0), Just(x1), ty_Double)
new_not(True)
new_ltEs5(Right(x0), Right(x1), x2, app(ty_[], x3))
new_lt10(x0, x1)
new_esEs20(x0, x1, ty_Integer)
new_esEs22(x0, x1, app(app(app(ty_@3, x2), x3), x4))
new_primCompAux0(x0, x1, x2, x3)
new_ltEs5(Right(x0), Right(x1), x2, ty_Char)
new_esEs16(Float(x0, x1), Float(x2, x3))
new_esEs6(Just(x0), Just(x1), ty_Integer)
new_ltEs16(GT, EQ)
new_ltEs16(EQ, GT)
new_primCmpInt(Neg(Zero), Pos(Succ(x0)))
new_primCmpInt(Pos(Zero), Neg(Succ(x0)))
new_ltEs7(Just(x0), Just(x1), ty_Float)
new_ltEs7(Nothing, Just(x0), x1)
new_esEs7(Right(x0), Right(x1), x2, app(app(ty_Either, x3), x4))
new_esEs27(x0, x1, app(ty_Maybe, x2))
new_esEs28(x0, x1, ty_Float)
new_esEs28(x0, x1, ty_Char)
new_compare30(x0, x1, app(app(ty_@2, x2), x3))
new_esEs23(x0, x1, ty_@0)
new_lt20(x0, x1, ty_Bool)
new_pePe(True, x0)
new_primCmpInt(Pos(Zero), Neg(Zero))
new_primCmpInt(Neg(Zero), Pos(Zero))
new_not(False)
new_compare110(x0, x1, True)
new_ltEs16(LT, EQ)
new_ltEs16(EQ, LT)
new_ltEs19(x0, x1, ty_@0)
new_ltEs13(x0, x1)
new_esEs23(x0, x1, app(app(ty_Either, x2), x3))
new_esEs24(x0, x1, ty_Int)
new_esEs23(x0, x1, ty_Double)
new_esEs7(Right(x0), Right(x1), x2, ty_Integer)
new_ltEs5(Right(x0), Right(x1), x2, ty_Float)
new_ltEs7(Just(x0), Just(x1), ty_Integer)
new_ltEs7(Just(x0), Just(x1), app(ty_[], x2))
new_esEs28(x0, x1, ty_Ordering)
new_esEs6(Just(x0), Just(x1), ty_Char)
new_primEqInt(Pos(Zero), Pos(Succ(x0)))
new_ltEs4(x0, x1)
new_esEs21(x0, x1, app(app(app(ty_@3, x2), x3), x4))
new_esEs26(x0, x1, ty_Int)
new_esEs27(x0, x1, ty_Char)
new_esEs22(x0, x1, app(ty_[], x2))
new_esEs19(x0, x1, ty_Bool)
new_primCmpInt(Pos(Succ(x0)), Pos(x1))
new_compare10(x0, x1, False, x2, x3)
new_esEs26(x0, x1, app(ty_[], x2))
new_foldFM_GE12(x0, x1, x2, x3, x4, x5, False, x6, x7)
new_primCompAux00(x0, LT)
new_ltEs5(Left(x0), Right(x1), x2, x3)
new_ltEs5(Right(x0), Left(x1), x2, x3)
new_lt4(x0, x1)
new_esEs8(LT, EQ)
new_esEs8(EQ, LT)
new_esEs28(x0, x1, app(app(ty_Either, x2), x3))
new_compare0([], :(x0, x1), x2)
new_esEs7(Left(x0), Left(x1), app(app(ty_Either, x2), x3), x4)
new_esEs18(x0, x1, app(app(app(ty_@3, x2), x3), x4))
new_ltEs18(x0, x1, ty_Bool)
new_lt19(x0, x1, ty_Bool)
new_ltEs7(Just(x0), Just(x1), app(ty_Ratio, x2))
new_ltEs5(Left(x0), Left(x1), app(ty_[], x2), x3)
new_esEs7(Left(x0), Left(x1), app(app(ty_@2, x2), x3), x4)
new_esEs6(Just(x0), Nothing, x1)
new_esEs26(x0, x1, ty_Double)
new_compare13(Char(x0), Char(x1))
new_esEs27(x0, x1, app(app(ty_Either, x2), x3))
new_esEs6(Just(x0), Just(x1), app(ty_[], x2))
new_esEs26(x0, x1, app(ty_Maybe, x2))
new_ltEs5(Left(x0), Left(x1), ty_Int, x2)
new_ltEs5(Right(x0), Right(x1), x2, ty_Int)
new_esEs7(Right(x0), Right(x1), x2, ty_Int)
new_esEs22(x0, x1, app(app(ty_@2, x2), x3))
new_esEs18(x0, x1, ty_Integer)
new_esEs6(Just(x0), Just(x1), ty_Float)
new_compare25(x0, x1, False)
new_esEs7(Right(x0), Right(x1), x2, app(ty_Ratio, x3))
new_primEqNat0(Succ(x0), Zero)
new_lt19(x0, x1, ty_Double)
new_esEs20(x0, x1, app(app(ty_Either, x2), x3))
new_esEs27(x0, x1, ty_Ordering)
new_primEqInt(Pos(Zero), Pos(Zero))
new_esEs6(Just(x0), Just(x1), ty_Bool)
new_compare14(Float(x0, x1), Float(x2, x3))
new_ltEs19(x0, x1, app(ty_[], x2))
new_esEs17(:(x0, x1), :(x2, x3), x4)
new_esEs20(x0, x1, ty_Float)
new_esEs19(x0, x1, ty_@0)
new_lt12(x0, x1, x2)
new_lt19(x0, x1, ty_Int)
new_lt20(x0, x1, ty_Integer)
new_compare19(x0, x1, x2, x3)
new_compare26(x0, x1, False, x2, x3)
new_esEs26(x0, x1, app(app(app(ty_@3, x2), x3), x4))
new_primMulInt(Neg(x0), Neg(x1))
new_esEs6(Just(x0), Just(x1), ty_Ordering)
new_esEs7(Left(x0), Left(x1), ty_Ordering, x2)
new_esEs21(x0, x1, ty_Integer)
new_ltEs6(x0, x1)
new_ltEs5(Right(x0), Right(x1), x2, ty_Ordering)
new_compare112(x0, x1, False)
new_esEs6(Just(x0), Just(x1), app(ty_Maybe, x2))
new_esEs28(x0, x1, ty_Double)
new_lt20(x0, x1, ty_Float)
new_esEs20(x0, x1, ty_@0)

We have to consider all minimal (P,Q,R)-chains.
By using the subterm criterion [20] together with the size-change analysis [32] we have proven that there are no infinite chains for this DP problem.

From the DPs we obtained the following set of size-change graphs: